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