You spin me right round (like an hard disk)

You can get some info about your disk work with bb-iostat

Another nice tool – distributed with the bonnie++ suite – is zcav. zcav measures read thruput in function of the sector number.

As the disk spins at constant angular speed (eg. 7200RPM aka 120Hz), and data is stored on the plates at various distance from the spindle, the speed of the outer part of the disk (first sectors) is higher than the inner one.

Ex. Audio CD reads data at a constant speed. To achieve that, the spindle starts at 3.5Hz at the beginning of the disc (the outer part) to end at ~8Hz at the end.

Ex. On a 2.5inch (63mm) HD @120Hz:
* the outer data speed is 2·π· 63mm · 120Hz ~ 47m/s
* a mean data speed is the half 2 · π · 32mm · 120Hz ~ 24m/s

To get some numbers, run zcav on two distant partitions:

sudo zcav -c1 -lsda1 -f/dev/sda1;
sudo zcav -c1 -lsda8 -f/dev/sda8;

and nicely plot that data with gnuplot:


unset autoscale x
set autoscale xmax
unset autoscale y
set autoscale ymax
set xlabel “Block offset (GB)”
set ylabel “MB/s”
set key right bottom
plot “sda1” title “/other”, “sda8” title “/home”

And here’s an extract from my sda8 test. The read performance loss is sensible!

#block offset (GiB), MiB/s, time
0.00 63.13 4.055
10.00 61.27 4.178
20.00 57.69 4.438
30.00 60.13 4.257
40.00 54.08 4.733
50.00 56.34 4.544
60.00 55.91 4.579
140.00 42.94 5.962
150.00 38.96 6.571
160.00 38.62 6.628
170.00 34.91 7.333