[sclug] disk transfer rates (was) Newbie, partitioning 120Gb HDD - recommendations?

Tom Dawes-Gamble tmdg at tmdg.co.uk
Wed Jan 19 07:52:55 UTC 2005


Hi,

Prompted by the information in 
http://www.pcguide.com/ref/hdd/geom/tracksZBR-c.html 

I thought I'd look the information on my 200 Gig WDC disk I noticed
that it gave two transfer rates. One for disk to buffer and one for
buffer to host. But alas I couldn't find out the Zone information.

Anyway I read again the information and followed the "data transfer
rate" to  link
http://www.pcguide.com/ref/hdd/perf/perf/spec/trans_Media.htm
This points out that the "data transfer rate" has nothing to do with the
"interface transfer rate".  

So I've knocked together a very rough benchmark. How long so it take to
read a gigabyte from the disk.  I did each test several times and these
are typical results.

# time dd if=/dev/sda of=/dev/null bs=1024 count=1048576 
1048576+0 records in
1048576+0 records out

real    0m18.691s
user    0m2.519s
sys     0m6.494s

However I can speed that up.

# time dd if=/dev/sda of=/dev/null bs=8192 count=131072 
131072+0 records in
131072+0 records out

real    0m17.801s
user    0m0.328s
sys     0m2.149s

Showing it spent > 2 sec less in user and > 4 sec less in system but the
elapsed time was barely 1 sec better. 

Next I tried skipping down the disk 80Gig

# time dd if=/dev/sda of=/dev/null bs=8192 count=131072 skip=10000000
131072+0 records in
131072+0 records out

real    0m18.898s
user    0m0.339s
sys     0m2.107s

No real difference user and sys about ht esame which is what you would
expect. But elapsed a second slower.

Now skip 160gig

# time dd if=/dev/sda of=/dev/null bs=8192 count=131072 skip=20000000
131072+0 records in
131072+0 records out

real    0m24.208s
user    0m0.334s
sys     0m2.098s

Again no change in user and sys but a good 50% increase in elapsed time.

If I skip to getting on for 192 gig

# time dd if=/dev/sda of=/dev/null bs=8192 count=131072 skip=24000000
131072+0 records in
131072+0 records out

real    0m30.330s
user    0m0.313s
sys     0m2.171s

Yuk!!!

Now if I change the rules and only read 64Meg things change.


# time dd if=/dev/sda of=/dev/null bs=1024 count=65536 skip=192000000
65536+0 records in
65536+0 records out

real    0m0.496s
user    0m0.150s
sys     0m0.346s

# time dd if=/dev/sda of=/dev/null bs=1024 count=65536
65536+0 records in
65536+0 records out

real    0m0.495s
user    0m0.187s
sys     0m0.309s


To my mind there is no difference in these figures.

>From these figures I conclude that it does depend on what you are doing
and how you do it that has the most effect.

I would suggest that the 64Meg test is closer to what most people do.

regards,
Tom.



More information about the Sclug mailing list