So let's do a quick rundown of your top two waits:
- IO_COMPLETION - waiting to write to storage
- PAGEIOLATCH* - waiting to read from storage
In 30 seconds, your queries spent 1,655 seconds waiting on storage.
Your storage is probably slow - if you skip down to the next section in sp_BlitzFirst's output, it will show which data and log files SQL Server was waiting on, and for how long. However, before you leap to playing Pin The Blame On The SAN Administrator, consider:
- Tuning indexes & queries to reduce the amount of data read from disk (I'd suggest using sp_BlitzIndex and sp_BlitzCache for that, although I'm biased (disclaimer: I'm one of the coauthors))
- Adding memory to cache data, which will reduce PAGEIOLATCH, thereby easing pressure on the storage, and will likely reduce the IO_COMPLETION waits too
- Spending a whole lot of money on storage (you might guess that the above two fixes are above this one for a reason)