Tech Journal Back to Tech Journal

Changing IDE bus paramaters to effect performance under linux

I've found the IDE performance problems go away entirely with the correct bus-mastering settings. You still can't get decent performance with two drives on a single channel, but my new Abit motherboard came with four IDE channels. So you can have four IDE hard drives without losing performance.

Here are some real benchmarks to back this up:

[root@olympus /root]# /sbin/hdparm -c0 -d0 -k1 -m0 -W0 /dev/hda

<snip>

[root@olympus /root]# /sbin/hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 64 MB in 28.40 seconds = 2.25 MB/sec
[root@olympus /root]# /sbin/hdparm -c1 -d1 -k1 -m16 -W1 /dev/hda

<snip>

[root@olympus /root]# /sbin/hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 64 MB in 4.86 seconds =13.17 MB/sec

That's with a 7200 Seagate drive. The first benchmark, giving a whopping 2.25MB/sec, was with all the IDE options in sucky mode. This is the way older IDE controllers work, and in large part responsible for IDE's bad name. The second benchmark shows that it can have good performance. It's CPU performance wasn't as good as SCSI's (17% out of 200%; dual-processor box) but wasn't as bad as many have said.

Notes specific to the current linux box:

Another thing you might try (though this isn't an IDE setting) is to turn off the writing of the last accessed time, by using the noatime option when mounting the filesystem. To see how this affects things, try running a file-reading benchmark and then re-run the benchmark after doing:

$ mount  -o remount,noatime /dev/hdc1

Update: Here's the new results I got, after upgrading my computer (for new best paramaters):

/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 65535/16/63, sectors = 78177792, start = 0
# /sbin/hdparm -T /dev/hda
/dev/hda:
Timing cached reads: 600 MB in 2.01 seconds = 298.50 MB/sec
# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 120 MB in 3.03 seconds = 39.64 MB/sec
Last updated on 2007-05-31 21:11:51 -0700, by Shalom Craimer

Back to Tech Journal