From owner-freebsd-scsi@FreeBSD.ORG Fri Jun 23 19:52:53 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 6173216A494 for ; Fri, 23 Jun 2006 19:52:53 +0000 (UTC) (envelope-from gibbs@scsiguy.com) Received: from ns1.scsiguy.com (ns1.scsiguy.com [70.89.174.89]) by mx1.FreeBSD.org (Postfix) with ESMTP id 095D043D45 for ; Fri, 23 Jun 2006 19:52:52 +0000 (GMT) (envelope-from gibbs@scsiguy.com) Received: from [10.0.0.22] (63-138-13-146.customer.static.ip.paetec.net [63.138.13.146] (may be forged)) (authenticated bits=0) by ns1.scsiguy.com (8.13.6/8.13.6) with ESMTP id k5NJqovN021430 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 23 Jun 2006 13:52:51 -0600 (MDT) (envelope-from gibbs@scsiguy.com) Date: Fri, 23 Jun 2006 13:52:41 -0600 From: "Justin T. Gibbs" To: Volodymyr Kostyrko Message-ID: <0C5F4B7D7A8779025C3E480D@[10.0.0.22]> In-Reply-To: <449C1861.3080902@synergetica.dn.ua> References: <4499B748.6040805@synergetica.dn.ua> <90D11403BD2140875BFEB24D@[10.0.0.22]> <449C0E34.3080005@synergetica.dn.ua> <5272604BA34A45926DFA0D2F@[10.0.0.22]> <449C1861.3080902@synergetica.dn.ua> X-Mailer: Mulberry/3.1.6 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 19:52:53 -0000 Access the raw device to bypass the filesystem and VM subsystem. Start N dds where N is the queue depth you've configured for the device. -- Justin --On Friday, June 23, 2006 7:35 PM +0300 Volodymyr Kostyrko wrote: > 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. >