How to understand I/O bottleneck for SQL Server I'm getting into the dba world for SQL Server via "trial by fire", and I have a IO question.

I have a SQL Server 2016 engine built upon Windows Server 2012.  This setup includes:


128Gb Ram
6Gb/s Megaid SAS controller





4 x 600Gb 15KSAS drives in RAID 5 on a 2-backplane configuration with 6Gb/s connection:





2 x 1Gb Network Connection (Fiber I believe)


So here's my question:


if everything is connected via 6Gb/s SAS connections, why is my IO only at the 5 to 6Mb/s speed resulting in a continuous PAGEIOLATCH_EX suspension?  This is where I'm confused.  This includes SQL Server Read/Write, and Operating System negotiation.


Any ideas on how to figure this one out would be greatly appreciated.

Thank you very much.
If you're using good ol' fashioned spinning rusty frisbees, also known as magnetic hard drives, this isn't an unusual number to see when you're doing random reads and writes. You can outpace those drives with a simple USB 3 flash drive.

To find out for sure, run the portable edition of CrystalDiskMark on your server during a maintenance window. Test the C drive, test where data is stored, where logs are stored, etc - and then compare it to your laptop's SSD. You might be surprised at how much slower random reads &amp; writes are on this array of spinning rusty frisbees.