Promise PDC20267 ATA RAID, poor write performance
Søren Schmidt
sos at DeepCore.dk
Sat Sep 11 03:50:24 PDT 2004
Frode Nordahl wrote:
> Hello,
>
> I have a intel S845WD1-E board with onboard Promise PDC20267 controller.
> The system is set up with a P4 2Ghz with 1GB RAM.
> The board also has a Intel ICH2, but that's only used by a CDROM.
>
> Disks connected:
> ad4: 39205MB <Maxtor 6E040L0/NAR61590> [79656/16/63] at ata2-master UDMA100
> ad6: 39205MB <Maxtor 6E040L0/NAR61590> [79656/16/63] at ata3-master UDMA100
>
> I have them set up in a RAID1
>
> I have tried this on FreeBSD 4.10-RELEASE, and 6-CURRENT (from today)
> with similar results.
>
> I also tried with RAID0, and that showed the same results*2, that is,
> ca. 7MB/s write instead of 3.5MB/s.
>
> I have no previous experience with this hardware on other OS'es, so I'm
> not sure what to expect, but I'm pretty sure it should be better than
> this :)
>
> dmesg included below.
>
> Doing simple tests show very poor write performance:
> (reboot)
> # dd if=/dev/zero of=fill bs=1m count=2000
> 2000+0 records in
> 2000+0 records out
> 2097152000 bytes transferred in 588.383886 secs (3564258 bytes/sec)
>
> (reboot)
> # dd if=fill of=/dev/null bs=1m
> 2000+0 records in
> 2000+0 records out
> 2097152000 bytes transferred in 68.492015 secs (30618927 bytes/sec)
OK I got this this setup now:
atapci0: <Promise PDC20267 UDMA100 controller> port
0xb000-0xb03f,0xb400-0xb403,0xb800-0xb807,0xd000-0xd003,0xd400-0xd407
mem 0xfd000000-0xfd01ffff irq 16 at device 3.0 on pci0
ad1: 14305MB <Maxtor 2R015H1/EAH41MF0> [29065/16/63] at ata2-master UDMA100
ad2: 14305MB <Maxtor 2R015H1/EAH41MF0> [29065/16/63] at ata3-master UDMA100
ar0: 14305MB <ATA RAID1 array> [1823/255/63] status: READY subdisks:
Controller the same, disks are an earlier verision of those "low
profile" Maxtor disks, just somewhat slover than yours.
pizzabox# dd if=/dev/zero of=fill bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 122.908771 secs (17062672 bytes/sec)
pizzabox# dd if=fill of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 78.299524 secs (26783713 bytes/sec)
Thats pretty much what I'd expect from this HW, so I risk saying that
ATA is working just as it should here.
The only thing I could think of was if you have WC (write cache) turned
off for some reason which yields this result here:
pizzabox# dd if=/dev/zero of=fill bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 428.874993 secs (4889891 bytes/sec)
That looks more like your results, but they are also within what I would
expect when not using WC..
-Søren
More information about the freebsd-current
mailing list