I/O Elevators
Vista and XP both have, what kernel geeks call, disk I/O elevators. Drive elevators are i/o
optimization strategies surrounding the physical head position of the drive. A good
elevator will re-order I/O requests to transfer blocks near the last head position to the
front of the queue, and re-order subsequent i/o's in close neighborhood chunks. This is
much faster than FIFO when you have a multi millisecond head movement cost. On Vista/
XP, both OS's will pause approximately 10ms between major head movements. This wait is
designed to anticipate and satisfy any new i/o requests that may arise near the heads
local position.
These optimization are a boon in performance for 5400 and 7200 rpm hard drives but they
will hold down the performance of SSDs. These optimizations will also negatively affect
RAID arrays with battery backed-up cache, SAN's with large NVRAM cache.
Windows Server 2003/2008 are optimized for SAN's and RAID arrays large nvram caches.
These two OS's use i/o elevators that expect mulit-head arrays and are tilted toward FIFO
scheduling with deadline, out of order algorithms.
Linux gives you four io elevators. CFQ or completely fair queuing, Anticipatory (most
analogous to XP/vista's), Deadline and FIFO.
My tests have shown deadline and FIFO fly with SSD's.
It stands to reason that windows 2000 lacks many of these head movement optimizations
and thus perform better on SSD's than XP/Vista.
A way to test this theory would be to run benchmarks on the server version of windows.
2000, 2003, 2008 server use I/O schedulers that are optimized for Caching RAID
controllers and SAN with large NVRAM caches.