Subject: Re: lmbench disk figures on SCSI vs. IDE
To: Laine Stump <laine@morningstar.com>
From: Michael L. VanLoon -- HeadCandy.com <michaelv@MindBender.serv.net>
List: port-i386
Date: 01/06/1997 00:29:48
>On one system that has:
>   wd0 at wdc0 drive 0: 2014MB, 4092 cyl, 16 head, 63 sec, 512 bytes/sec
>   <QUANTUM FIREBALL_TM2100A>
>   wd0: using 16-sector 16-bit pio transfers, lba addressing
>I get the following figures (extracted from the raw data file created by
>lmbench):
>   Disk /dev/rwd0a bandwidth          4474 KB/sec
>   File /usr/tmp/XXX write bandwidth: 3595 KB/sec

>On the other hand, on a machine with:
>   ahc0: target 0 using 16Bit transfers
>   ahc0: target 0 synchronous at 10.0MHz, offset = 0x8
>   sd0 at scsibus0 targ 0 lun 0: <SEAGATE, ST15150W, 0023> SCSI2 0/direct fixed
>   sd0: 4095MB, 3712 cyl, 21 head, 107 sec, 512 bytes/sec
>I get:
>   Disk /dev/rsd0a bandwidth          6677 KB/sec
>   File /usr/tmp/XXX write bandwidth: 1466 KB/sec

>So how is it that raw read performance is so much better on the SCSI
>drive, but file system write performance is so much better on the IDE?
>Does this have something to do with what lmbench is doing, or is it
>something in interaction between FFS and the drivers? Clues?

I have a few suggestions for you.

1) It doesn't look like you're using tagged command queuing.  That
will improve performance more than anything you can do.  Rebuild a
kernel with "options AHC_TAGENABLE" in it, and boot that.

2) Try running these benchmarks while running a program at the same
time that eats 100% of available CPU.  It should accumulate more run
time while the SCSI drive is busy.

3) Try running these tests on a ccd striped over two or more identical
drives.

4) Try 2 & 3 while multiple instances of a disk benchmark are running
on the same and/or different drives (of the same type) simultaneously.

-----------------------------------------------------------------------------
  Michael L. VanLoon                           michaelv@MindBender.serv.net
        --<  Free your mind and your machine -- NetBSD free un*x  >--
    NetBSD working ports: 386+PC, Mac 68k, Amiga, Atari 68k, HP300, Sun3,
        Sun4/4c/4m, DEC MIPS, DEC Alpha, PC532, VAX, MVME68k, arm32...
    NetBSD ports in progress: PICA, others...
-----------------------------------------------------------------------------