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

As I am optimizing all servers in our, I noticed that most of the performance bottleneck is directly connected with the harddisk read/write speed.

What I want to know is, are there any Windows / Registry / Device Driver tweaks I can do to increase I/O speed of my harddrives?

(All our servers run either Windows 2003 or Windows 2008)

All tips are very appreciated!


share|improve this question

migrated from Aug 30 '09 at 1:36

This question came from our site for computer enthusiasts and power users.

What speed disks are you using? 15K? – Kez Aug 29 '09 at 22:24
10k right now. Mostly RAID1(Mirror) for security. – Shaharyar Aug 29 '09 at 22:30
Are they in a hardware or software RAID? – Kez Aug 29 '09 at 22:37
Hardware, using Intel RAID Controller. – Shaharyar Aug 29 '09 at 22:40

Make sure that your read and write cache are enabled and big enough. Cache makes all the difference in the world.

share|improve this answer

If your RAID is mirroring, then going to mirroring + stripping will speed things up. You'll need to buy more drives though.

share|improve this answer

RAID 10 15K disks, but obviously that involves a financial outlay and a rebuild/migration exercise.

To be honest I would shy away from over-optimizing servers, unless the perf bottleneck is really causing problems. Every optimization you make is a trade-off of some kind, and you need to ask yourself if that trade-off is worth it. With a server I'm always happy to accept performance that's "good enough but not necessarily stellar" if it means better stability and reliability.

share|improve this answer

the performance hit is in the very nature of RAID 1 (mirrored). you want speed, then you'll have to use RAID 0 (striped) which is not really an option for servers where you want fault tolerance from disk errors and failure.

share|improve this answer

I would recommend against trying to tweak the way Windows performs I/O, some smart people have already put a lot of thought and testing into optimizing it as much as possible, across many different scenarios.

Another enhancement for remote copies is the pipelined I/Os issued by the SMB2 file system driver, srv2.sys, which is new to Windows Vista and Windows Server 2008. Instead of issuing 60KB I/Os across the network like the original SMB implementation, SMB2 issues pipelined 64KB I/Os so that when it receives a large I/O from an application, it will issue multiple 64KB I/Os concurrently, allowing for the data to stream to or from the remote system with fewer latency stalls.

The copy engine also issues four initial I/Os of sizes ranging from 128KB to 1MB, depending on the size of the file being copied, which triggers the Cache Manager read-ahead thread to issue large I/Os. The platform change made in SP1 to the Cache Manager has it perform larger I/O for both read-ahead and write-behind. The larger I/Os are only possible because of work done in the original Vista I/O system to support I/Os larger than 64KB, which was the limit in previous versions of Windows. Larger I/Os also improve performance on local copies because there are fewer disk accesses and disk seeks, and it enables the Cache Manager write-behind thread to better keep up with the rate at which memory fills with copied file data. That reduces, though not necessarily eliminates, memory pressure that causes active memory contents to be discarded during a copy. Finally, for remote copies the large I/Os let the SMB2 driver use pipelining. The Cache Manager issues read I/Os that are twice the size of the I/O issued by the application, up to a maximum of 2MB on Vista and 16MB on Server 2008, and write I/Os of up to 1MB in size on Vista and up to 32MB on Server 2008.

If you can switch those 2003 servers to 2008 and have clients running Vista, you won't have faster I/O, but you might just have more efficient I/O.

That said, it is probably easier and better to look into hardware solutions as stated in the other answers.

share|improve this answer

There is no hard and fast rules. If you have cheap controllers in cheap servers, then you are getting what you pay for...

We'd also need more information... but some questions off the top of my head...

  • What are the servers running? DB, file server, DC, Exchange etc?
  • What are your current figures? Whet do you think is a good figure?
  • Are you paging because you don't have enough memory?
  • What RAID controller exactly: is it top line? Was it cheap? Is it upgradeable? PCI 32 or 64?
  • Are you using SCSI? Why only 10k disks if so if I/O is important?
  • Latest drivers/firmware in controller etc?
  • What server spec?
share|improve this answer

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.