5

I have a very active website which is using a NoSql database (RavenDb). I don't have exact figures as i'm not quite sure how to extract this information (any help would be great!)

But looking in performance monitor at the '% Disk Read' counter on the disk my database is running from, it is regularly over 1000...which doesn't make sense if it's a perecentage???

My sites performance does decrease once these figures are this high, not so much that it's unusable but it should be better.

Am I looking at the right performance counters, what else can I look at to find out if my disk is under heavy load...and even better if i can find out why.

My disks are 2TB 7200 rpm disks (not ideal i know, but it's all I have available currently) 12GB Memory (uses about 80%) Dual Xeon processor

I understand that this question is a little vague, I need some help on getting the right details to you to help you answer this better, just let me know what will help.

Paul

Mark Henderson
  • 68,316
  • 31
  • 175
  • 255
Paul Hinett
  • 1,205
  • 3
  • 11
  • 19

2 Answers2

7

Your gut instinct is correct; I wouldn't go any further than the disks. Consumer-grade SATA disks are appallingly slow, and not suited for hosting business applications whatsoever. The weak link is going to be the actual spindle speed and the storage (RAID) controller. All else equal, serial-attached SCSI (SAS) will yield far more IOPS than SATA. Avoid RAID5 for (most) databases, use RAID10 wherever possible.

Unfortunately, as with many other IT problems, the only real solution is "be less poor."

UPDATE:

To answer your question regarding the "% Disk Read Time," please refer to the following Microsoft KnowledgeBase article. It seems that certain storage controllers report statistics in an odd way. With that said, it definitely seems like your disks are being pushed to the absolute limit.

Joel E Salas
  • 5,562
  • 15
  • 25
  • Thank you for the answer...yes i know better disks will help of course, I was just wondering if the counters of over 1000 is actually a percentage, are my disks really getting that thrashed? – Paul Hinett Apr 25 '12 at 23:28
  • The idea that there was something other than a premium for "enterprise grade" drives was dead years ago (much like using raid5)- http://storagemojo.com/2007/02/20/everything-you-know-about-disks-is-wrong/ – Jim B Apr 25 '12 at 23:49
  • was an interesting read thanks, don't fully understand all of it but still interesting. – Paul Hinett Apr 26 '12 at 00:08
1

You can't use %disk read time to tell if the disk is busy this is because "busy time[is] based on the duration of the I/O request, which includes time spent in activities other than reading to or writing from the disk. It then sums up all busy time for all requests and divides it by the elapsed time of the sample interval. If multiple requests are in process at a time, the total request time is greater than the time of the sample interval; as a result, reported disk utilization can exceed actual utilization. "

see Examining and Tuning Disk Performance

Jim B
  • 23,938
  • 4
  • 35
  • 58
  • ok thanks, i seen that earlier...however as a novice when it comes to performance monitoring i'm still not quite sure what i should be looking at / cross referencing. I just fired up ProcessMon and got some IO stats for RavenDb.Server.exe which says it's using around 28 MB/s, doesn't sound too high. – Paul Hinett Apr 26 '12 at 00:09
  • Its probably not. you need to look at Current Disk Queue Length over good amount of time (the longer the better but at least 24 hours) to get a sense of what the number should be under normal load with acceptable performance. You can also monitor Disk Bytes/sec to see if the disk (or adapter is actually) fully utilized – Jim B Apr 26 '12 at 00:45