And there was hdparm…
First of all, for people who don’t know what hdparm is, I recommend reading the manpages hdparm(8) about it. You could also do some googling and/or read this article about it. I tried it out on my freshly configged Ubuntu box and here are the results (and how I achieved them).
To do some benchmarking hdparm comes with the very usefull -T and -t flags, for benchmarking (see manpage for details)
So… I did a test on my system as it was before fiddling around with it (which means: the system Ubuntu offered me). Here are the results…
hdparm -i /dev/hda /dev/hdc /dev/hdd
/dev/hda:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 65535/16/63, sectors = 40020664320, start = 0
/dev/hdc:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 24792/255/63, sectors = 203928109056, start = 0
/dev/hdd:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 65535/16/63, sectors = 60040544256, start =
These are the default settings, and these are the results:
hdparm -Tt /dev/hda /dev/hdc /dev/hdd
/dev/hda:
Timing cached reads: 1376 MB in 2.00 seconds = 687.42 MB/sec
Timing buffered disk reads: 54 MB in 3.10 seconds = 17.44 MB/sec
/dev/hdc:
Timing cached reads: 1432 MB in 2.00 seconds = 714.32 MB/sec
Timing buffered disk reads: 70 MB in 3.02 seconds = 23.17 MB/sec
/dev/hdd:
Timing cached reads: 1412 MB in 2.00 seconds = 705.05 MB/sec
Timing buffered disk reads: 64 MB in 3.07 seconds = 20.86 MB/sec
Not bad. Now I applied these settings:
hdparm -d1 -X udma2 -c3 -m16 -u1 -W1 -A1 -a256 /dav/hda
hdparm -d1 -X udma2 -c3 -m16 -u1 -W1 -A1 -a256 /dev/hdc
hdparm -d1 -X udma2 -c3 -m16 -u1 -W1 -A1 -a256 /dev/hdd
and these are the new results
/dev/hda:
Timing cached reads: 1484 MB in 2.00 seconds = 740.26 MB/sec
Timing buffered disk reads: 58 MB in 3.04 seconds = 19.05 MB/sec
/dev/hdc:
Timing cached reads: 1472 MB in 2.00 seconds = 734.64 MB/sec
Timing buffered disk reads: 80 MB in 3.04 seconds = 26.28 MB/sec
/dev/hdd:
Timing cached reads: 1476 MB in 2.00 seconds = 737.37 MB/sec
Timing buffered disk reads: 64 MB in 3.02 seconds = 21.21 MB/sec
root@jesusdesk:/home/jesus # hdparm -Tt /dev/hda /dev/hdc /dev/hdd
Long story short, this is my speed-gain:
/dev/hda:
687.42 -> 740.26
17.44 -> 19.05
/dev/hdc:
714.32 -> 734.64
23.17 -> 26.28
/dev/hdd:
705.05 -> 737.37
20.86 -> 21.21
Not bad, not bad…
For those who care, here’s some sysinfo:
- P4 1.8GHz
- 512 DDR
- Some Intel mobo that has udma2 as speed limit :’(
- /dev/hda is a Seagate 40 gig 5400 rpm HD
- /dev/hdc is a Maxtor 200 gig 7200 rpm HD
- /dev/hdd is a Maxtor 60 gig 7200 rpm HD
And some more HD info:
/dev/hda:
Model=ST340823A, FwRev=3.39, SerialNo=7EF1R4ZK
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=1024kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version: 1 2 3 4
* signifies the current active mode
/dev/hdc:
Model=Maxtor 6B200P0, FwRev=BAH41BM0, SerialNo=B416KYAH
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5 udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: (null):
* signifies the current active mode
/dev/hdd:
Model=MAXTOR 6L060J3, FwRev=A93.0500, SerialNo=663209059366
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
BuffType=DualPortCache, BuffSize=1819kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=117266688
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2
AdvancedPM=no WriteCache=enabled
Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1:
* signifies the current active mode
4 commentaren February 28th, 2005