I've been trying to really figure out what my IOPS are on my DB server array and see if it's just too much. The array is four 72.6gb 15k rpm drives in RAID 5. To calculate IOPS for RAID 5 the following formula is used:
(reads + (4 * Writes)) / Number of disks = total IOPS. The formula is from MSDN. I also want to calculate the Avg Queue Length but I'm not sure where they are getting the formula from, but i think it reads on that page as
avg que length/number of disks = actual queue.
To populate that formula I used the perfmon to gather the needed information. I came up with this, under normal production load:
(873.982 + (4 * 28.999)) / 4 = 247.495. Also the disk queue lengh of
14.454/4 = 3.614.
So to the question, am I wrong in thinking this array has a very high disk IO?
I got the chance to review it again this morning under normal/high load. This time with even bigger numbers and IOPS in excess of 600 for about 5 minutes then it died down again. But I also took a look at the
%Disk Time, and
%Idle Time. These number were taken when the reads/writes per sec were only 332.997/17.999 respectively.
%Disk Time: 219.436
%Idle Time: 0.300
Avg Disk Queue Length: 2.194
Avg Disk sec/Transfer: 0.006
% Processor Time: 21.877
Looks like I have that issue solved. Thanks for the help. Also for a pretty slick parser I found this: http://pal.codeplex.com/ It works pretty well for breaking down the data into something usable.