Regarding IO to disk
Wojciech Puchar
wojtek at wojtek.tensor.gdynia.pl
Wed Jul 8 15:54:39 UTC 2009
>
> Declared average latency for desktop hard drives (see
> http://www.seagate.com/docs/pdf/datasheet/disc/ds_barracuda_7200_12.pdf) is
latency is average time to wait until data will be below head. it's by
average half on single rotation. for 7200 rpm drive it's 120rps so half
rotation takes 1/240 second=about 4ms.
But to perform I/O you have to
- send a request to disk (<1ms)
- move head - depends of distance, up to 20-30ms, 8-10ms average on most
drives
- wait for latency - 4ms average.
you end in 13-15ms average.
in case of multiple parallel accesses - drive accept writes immediatelly,
and can accept multiple reads if it can NCQ/TCQ, then it internally sort
request queue to minimize required head moves and rotational waiting, so
under high load you may go to 6-7ms/request which is about 150IOPS.
Of course i'm talking about random/pseudorandom reads, multiple reads of
sequential addresses will be optimized by drive.
One more - i'm talking about raw I/O, FreeBSD of course optimizes
filesystem acces internally by using lots of caching (as much as available
memory) and planning requests.
small writes to file usually succeed immediatelly (to cache).
More information about the freebsd-hackers
mailing list