Date: Fri, 23 Jun 2006 13:52:41 -0600 From: "Justin T. Gibbs" <gibbs@scsiguy.com> To: Volodymyr Kostyrko <arcade@synergetica.dn.ua> Cc: freebsd-scsi@freebsd.org Subject: Re: ahd(4) poor performance 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <arcade@synergetica.dn.ua> 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: > > <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@synergetica.dn.ua> wrote: >> >>> Justin T. Gibbs ?????: >>>> --On Thursday, June 22, 2006 12:16 AM +0300 Volodymyr Kostyrko >>>> <arcade@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. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0C5F4B7D7A8779025C3E480D>