ahd(4) poor performance
Volodymyr Kostyrko
arcade at synergetica.dn.ua
Fri Jun 23 16:35:50 UTC 2006
Justin T. Gibbs пишет:
> dd is synchronous. You'd need to aggregate the throughput of several dd
> operations
> to see the impact of overlapped commands.
Well, I'm testing system throughput also by:
ab -n1000 -c20 "http://somehost/test.php"
Where test.php each time INSERT's a line into database. It works way
faster on ATA and even faster on this machine under Linux.
Minding dd I've tried to do the following:
<file name='test.sh'>
dd if=/dev/zero of=somefile1 count=20480&
dd if=/dev/zero of=somefile2 count=20480&
dd if=/dev/zero of=somefile3 count=20480&
dd if=/dev/zero of=somefile4 count=20480&
dd if=/dev/zero of=somefile5 count=20480&
dd if=/dev/zero of=somefile6 count=20480&
dd if=/dev/zero of=somefile7 count=20480&
dd if=/dev/zero of=somefile8 count=20480&
wait
</file>
And it gives me:
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.040705 secs (3448463 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.066335 secs (3419639 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.124907 secs (3355543 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.233639 secs (3242712 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.286119 secs (3190925 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.377989 secs (3104143 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.434316 secs (3053231 bytes/sec)
20480+0 records in
20480+0 records out
10485760 bytes transferred in 3.448736 secs (3040465 bytes/sec)
The values are quite precise for any queue depth starting from 2 and
above.
Or how many threads should I start?
>
> --
> Justin
>
> --On Friday, June 23, 2006 6:52 PM +0300 Volodymyr Kostyrko
> <arcade at synergetica.dn.ua> wrote:
>
>> Justin T. Gibbs ?????:
>>> --On Thursday, June 22, 2006 12:16 AM +0300 Volodymyr Kostyrko
>>> <arcade at synergetica.dn.ua> wrote:
>>>
>>>> Hi all.
>>>>
>>>> I have:
>>>>
>>>> ahd0: <Adaptec (Dell OEM) 39320 Ultra320 SCSI adapter> port
>>>> 0xdc00-0xdcff,0xd800-0xd8ff mem 0xdfbfe000-0xdfbfffff irq 66 at device
>>>> 7.0 on pci3
>>>> ahd0: [GIANT-LOCKED]
>>>> aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 101-133Mhz, 512 SCBs
>>>> ahd1: <Adaptec (Dell OEM) 39320 Ultra320 SCSI adapter> port
>>>> 0xd400-0xd4ff,0xd000-0xd0ff mem 0xdfbfc000-0xdfbfdfff irq 67 at device
>>>> 7.1 on pci3
>>>> ahd1: [GIANT-LOCKED]
>>>> aic7902: Ultra320 Wide Channel B, SCSI Id=7, PCI-X 101-133Mhz, 512 SCBs
>>>>
>>>> Booting machine also results in:
>>>>
>>>> ahd0: Invalid Sequencer interrupt occurred.
>>>
>>> This error is benign.
>>>
>>> There have been issues reported with some recent Seagate drives and
>>> large queue depths. You may get better performance if you use
>>> camcontrol
>>> to lower the queue depth to 63 or 32. I believe that 32 is the default
>>> used by Linux.
>>>
>>> --
>>> Justin
>>
>> Interesting.
>>
>> By default I have the following:
>>
>> srv4# camcontrol tags 0:0 -v
>> (pass1:ahd0:0:1:0): dev_openings 1
>> (pass1:ahd0:0:1:0): dev_active 0
>> (pass1:ahd0:0:1:0): devq_openings 1
>> (pass1:ahd0:0:1:0): devq_queued 0
>> (pass1:ahd0:0:1:0): held 0
>> (pass1:ahd0:0:1:0): mintags 2
>> (pass1:ahd0:0:1:0): maxtags 255
>>
>> Raising this to higher values provides better perfomance:
>>
>> @1:
>>
>> > dd if=/dev/zero of=somefile count=20480
>> 20480+0 records in
>> 20480+0 records out
>> 10485760 bytes transferred in 1.114188 secs (9411123 bytes/sec)
>>
>> @2:
>>
>> > dd if=/dev/zero of=somefile count=20480
>> 20480+0 records in
>> 20480+0 records out
>> 10485760 bytes transferred in 0.402884 secs (26026747 bytes/sec)
>>
>> Raising it further doesn't help anyway. And it still behaves not so
>> fast as Linux.
>>
>> --
>> [WBR], Arcade.
>>
>
>
--
[WBR], Arcade.
More information about the freebsd-scsi
mailing list