This will be a quick post. For about a year I have been alerting the powers that be of the poor I/O on one of my production systems. The server seemed constantly poised on the brink of over utilization. Of course the poor I/O wasn’t helping matters but some of the other symptoms of the server, High CPU, CXPACKET waits, blocking etc. must be a results of the high concurrent access, poor query design, and improper indexing I thought to myself and proceeded down a path of corrective action. I made some progress in these areas and saw some server performance improvements. The average I/O was still tracking around 50 MB/Sec on average.
I recently migrated the databases to new EVA SAN storage. The resulting I/O was now averaging 250 – 300 MB/Sec. Of course I was eagerly anticipating the improvements to performance but had no idea the real extent of the improvements. Average CPU utilization dropped 25 points, CXPACKET, PAGELATCH, PAGELATCHIO waits virtually disappeared, Blocking, lock escalations, and application timeouts dropped dramatically to almost nothing. The results were truly dramatic, the point being is that there may be symptoms of I/O stress that one would not normally associate directly with poor I/O. Obviously if I/O is poor then database performance is only down hill from there. If you have poor I/O then strive to correct that first before seeking other performance gremlins, it will be time well spent.