Thursday, October 2, 2014

Measuring SQL Performance in SAN Environments

The use of the Physical/Logical Disk -> Disk Queue Length perfmon counter has always been used in the past as a first call for measuring disk performance. Unfortunately the use of the Disk Queue Length in SAN environments is dramatically diminished.
The usual approach is to measure disk queue length and conclude that any sustained Disk Queue Lengths of greater than two is bad performance for any given disk. Microsoft specifies this technically as any Avg Disk Queue Length that exceeds twice the number of spindles is likely developing a bottleneck.13 Due to the fact that any given LUN on the SAN may be composed of many physical disks, the exact number of spindles is not necessarily known. Therefore it is of little value to measure all LUNs against a single arbitrary number. By the same token comparing one Disk Queue Length against another, even on the same server, is of dubious value.
Fortunately, there is another perfmon counter which still gives results in SAN environments:
Logical Disk -> Avg Disk/Sec. This counter measures the speed that data is being moved in seconds. Specifically it measures the average time of each data transfer regardless of the number of bytes read or written.
The suggestion here is that all Logical Disks involved in SQL operations should have an Avg Disk/Sec transfer time of between 10 and 20 ms. Arguments could be made for results greater than this, but certainly consistent times of greater than 50ms are cause for concern.

No comments:

Post a Comment