[plug] Disk speedup

John Summerfield summer at os2.ami.com.au
Mon Nov 29 20:50:46 WST 1999


We were talking about how fast disk drives should work. Here is an example 
of some tweaking.

The computer belongs to my daughter, Michelle. It's a P133 on a SiS5597 
chipset (ASUS Sp97-V).


The drive that came with it started being difficult at boot time, so she 
went out and bought the cheapest drive on offer. This is it.


[root at kangaroo /root]# time -p hdparm -d0 -c0 -m0 -t /dev/hd[a]

/dev/hda:
 setting 32-bit I/O support flag to 0
 setting multcount to 0
 setting using_dma to 0 (off)
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 using_dma    =  0 (off)
 Timing buffered disk reads:  32 MB in  6.89 seconds = 4.64 MB/sec
real 10.09
user 0.03
sys 6.64
[root at kangaroo /root]# time -p hdparm -m 8 -t /dev/hd[a]

/dev/hda:
 setting multcount to 8
 multcount    =  8 (on)
 Timing buffered disk reads:  32 MB in  6.18 seconds = 5.18 MB/sec
real 9.33
user 0.03
sys 5.95
[root at kangaroo /root]# time -p hdparm -m 16 -t /dev/hd[a]

/dev/hda:
 setting multcount to 16
 multcount    = 16 (on)
 Timing buffered disk reads:  32 MB in  6.16 seconds = 5.19 MB/sec
real 9.32
user 0.05
sys 5.76
[root at kangaroo /root]# time -p hdparm -c1 -t /dev/hd[a]

/dev/hda:
 setting 32-bit I/O support flag to 1
 I/O support  =  1 (32-bit)
 Timing buffered disk reads:  32 MB in  3.84 seconds = 8.33 MB/sec
real 7.01
user 0.05
sys 3.69
[root at kangaroo /root]# time -p hdparm -d1 -t /dev/hd[a]

/dev/hda:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)
 Timing buffered disk reads:  32 MB in  2.43 seconds =13.17 MB/sec
real 5.59
user 0.02
sys 1.65
[root at kangaroo /root]# hdparm  -ti /dev/hd[a]

/dev/hda:

 Model=QUANTUM FIREBALL CR6.4A, FwRev=A5U.1200, SerialNo=82691155
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=13328/15/63, TrkSize=32256, SectSize=21298, ECCbytes=4
 BuffType=3(DualPortCache), BuffSize=418kB, MaxMultSect=16, MultSect=16
 DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=2(fast)
 CurCHS=784/255/63, CurSects=789577920, LBA=yes, LBAsects=12594960
 tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2 
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 

 Timing buffered disk reads:  32 MB in  2.41 seconds =13.28 MB/sec
[root at kangaroo /root]# 


A few tweaks and it's transferring over three times the speed.

Note 1: If you use these commands, and something broke, then you did it.
Note 2: hdparm is not a good benchmark. I've not examined the source code; 
my guess is that it simply reads large blocks sequentially totalling 32 
Mbytes and times it. If this behaviour characterises your work, it should 
accurately reflect the performance you can expect (allowing for ext2 
overheads). At other times, it will parallel your experience less 
accurately. However, a drive that performs slowly with this test is likely 
to be slow at everything.

Assume that the results hdparm gets are about the best you can possibly 
achieve.


-- 
Cheers
John Summerfield
http://os2.ami.com.au/os2/ for OS/2 support.
Configuration, networking, combined IBM ftpsites index.




More information about the plug mailing list