Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My results from SQLIO are just wrong. I have a 6 drive RAID 10 array with SAS disks 10K RPM. SQLIO is saying I am getting max of 8000+ IOps. I am using a 10,240MB file, random read, 1 thread per file, 4 Outstanding IOs, 4-32 request byte size.

How do I prevent caching? HP 400 controllers have 100% read cache only (no-battery backup I just found out). Windows 2008 enterprise. You can't turn the cache off on the controller.

Thanks, Chuck

share|improve this question

Why would you want to disable caching? Cache speeds things up. What IO speed do you think you should be getting?

When using random IO, your performance will be way less than when using sequential IO. Sequential IO is what is used to get the performance numbers that the vendors publish.

share|improve this answer
I am trying to get a baseline of server performance before I turn the box live. My 40gb database can't all be in cache so I want to eliminate its effects. So, when it is running I get baseline of IO under normal use and know how much headroom I have for growth. – SQLGuyChuck Jun 17 '09 at 4:17
How much RAM do you have? Even with 4-8 Gigs of RAM your IO requirements should be pretty low, unless you have 10k+ users all running queries at the same time, and none of there data is in cache. – mrdenny Jun 17 '09 at 6:24
I have 16GB RAM. We tried IOMeter with 1,000,000 sectors and it reported something like 4000 Iops. We have just been burned previously with shared SAN on VMWare, two bad combinations, with tons of IO slowness. I want to get a better handle on these dedicated boxes IO capability so I can go to our SE's and say in the future we tested at max IO x we are using IO y now and growth is showing we will run out IO in x days. Basically evidence that I need more spindles or some other solution. Or am I going about this wrong? – SQLGuyChuck Jun 17 '09 at 14:55
That's the right technique to use, but if you are putting that much load on the disks, why not put more RAM in the server (RAM is cheaper than disk) so that SQL doesn't have to go to disk as much? Is this an OLTP or OLAP db? How many transactions per second are you pushing through the SQL Server? Are your transactions mostly read or write? What's you hit cache ratio in SQL? – mrdenny Jun 17 '09 at 18:27
OLTP, but used in reporting fashion often no ad-hoc though, just dynamic procs. 550 max trans/sec Cache hit is about 98% avg 90 on low marker. Reads/Writes average is 50/50 peak is 500/300 per second. Disk queue peaks to 80 (on shared SAN though). – SQLGuyChuck Jun 17 '09 at 19:13

The numbers that you receive from SQLIO with caching are what you're going to get from the system, so is that an issue? You'll run with caching anyway, so that should work OK. Have you run a test with vendor software to check RAW throughput and confirm what you are getting?

share|improve this answer
It is local disk, so I don't have any special software to see what disk are really doing. I worry that windows 2008 is doing its new improved caching capability, but distorting the SQLIO tests. I have read elsewhere that people have worked around, but I don't know how they did it. – SQLGuyChuck Jun 17 '09 at 4:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.