From owner-freebsd-scsi@FreeBSD.ORG Fri Jun 23 16:35:50 2006 Return-Path: X-Original-To: freebsd-scsi@freebsd.org Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 215B716A47E for ; Fri, 23 Jun 2006 16:35:50 +0000 (UTC) (envelope-from arcade@synergetica.dn.ua) Received: from nora.synergetica.dn.ua (synergetica.dn.ua [82.207.115.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 43EBB43D48 for ; Fri, 23 Jun 2006 16:35:48 +0000 (GMT) (envelope-from arcade@synergetica.dn.ua) Received: from [172.30.0.209] (yarn.lan [172.30.0.209]) (authenticated bits=0) by nora.synergetica.dn.ua (8.13.7/8.13.7) with ESMTP id k5NGZjS5011152; Fri, 23 Jun 2006 19:35:46 +0300 (EEST) (envelope-from arcade@synergetica.dn.ua) Message-ID: <449C1861.3080902@synergetica.dn.ua> Date: Fri, 23 Jun 2006 19:35:45 +0300 From: Volodymyr Kostyrko User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; ru-RU; rv:1.8.0.4) Gecko/20060605 SeaMonkey/1.0.2 MIME-Version: 1.0 To: "Justin T. Gibbs" References: <4499B748.6040805@synergetica.dn.ua> <90D11403BD2140875BFEB24D@[10.0.0.22]> <449C0E34.3080005@synergetica.dn.ua> <5272604BA34A45926DFA0D2F@[10.0.0.22]> In-Reply-To: <5272604BA34A45926DFA0D2F@[10.0.0.22]> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-scsi@freebsd.org Subject: Re: ahd(4) poor performance X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Jun 2006 16:35:50 -0000 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: 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 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 > wrote: > >> Justin T. Gibbs ?????: >>> --On Thursday, June 22, 2006 12:16 AM +0300 Volodymyr Kostyrko >>> wrote: >>> >>>> Hi all. >>>> >>>> I have: >>>> >>>> ahd0: 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: 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.