Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Sep 1997 00:56:05 +0200
From:      Mats Lofkvist <mal@algonet.se>
To:        current@FreeBSD.ORG
Subject:   Re: lousy disk perf. under cpu load (was IDE vs SCSI)
Message-ID:  <199709082256.AAA04008@kairos>

next in thread | raw e-mail | index | archive | help

> There is one issue I would like to return to, and that is the question
> originally posed: lousy disk performance under *some* circumstances.
> (Which circumstances?)

This is also what I really was interested in, I have heard enough
about the pros and cons of scsi and eide :-)

Few seem to be able to repeat my data, so here is some more information.

I tested reading (and writing were possible) small blocks (4KB) on all
my devices tonight. With iozone and bonnie I don't see anything really
alarming except that the bonnie seek rate drops significantly when
a "loader" is running (*). But dd from (and to) all my devices show the same
results counting the number of transfers per second (= # pci interrupts / s):

		rst0 r	rst0 w	sd0	rsd0	sd1	rsd1	cd0	rcd0
unloaded	283	294	3700	2600	1134	1049	900	460
loaded		23	22	50	26	24	23	25	22

rst0 is a sony sdt7000 dat tape on the ncr
sd0 is a quantum viking w on the aic7880
sd1 is a quantum capella on the ncr
cd0 is a pioneer dr-u12x on the ncr

Looks like user processes are limited on the number of interrupts/xfers
handled per second when loaded. Kernel code (like the file system)
doesn't seem to have that problem, except for the low seek rate.

Is there any configuration params that I might have screwed up?

Dmesg output and config file appended.

      _
Mats Lofkvist
mal@algonet.se


(*) Doing an ls in a non-cached directory with a background process
    running is enough to convince me this really affects "real" performance,
    you almost can count the number of seeks on the disk.



Copyright (c) 1992-1997 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
  The Regents of the University of California.  All rights reserved.

FreeBSD 2.2.2-RELEASE #0: Tue Aug 12 03:02:44 CEST 1997
    root@garm.mal.algonet.se:/usr/src/sys/compile/GARM
CPU: Pentium Pro (198.67-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x619  Stepping=9
  Features=0xfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,<b11>,MTRR,PGE,MCA,CMOV>
real memory  = 67108864 (65536K bytes)
avail memory = 63733760 (62240K bytes)
Probing for devices on PCI bus 0:
chip0 <Intel 82440FX (Natoma) PCI and memory controller> rev 2 on pci0:0
fxp0 <Intel EtherExpress Pro 10/100B Ethernet> rev 1 int a irq 10 on pci0:6
fxp0: Ethernet address 00:a0:c9:49:bb:9f
chip1 <Intel 82371SB PCI-ISA bridge> rev 1 on pci0:7:0
chip2 <Intel 82371SB IDE interface> rev 0 on pci0:7:1
ahc0 <Adaptec aic7880 Ultra SCSI host adapter> rev 0 int a irq 10 on pci0:9
ahc0: aic7880 Wide Channel, SCSI Id=7, 16 SCBs
(ahc0:0:0): "QUANTUM VIKING 4.5 WSE 8808" type 0 fixed SCSI 2
sd0(ahc0:0:0): Direct-Access 4345MB (8899737 512 byte sectors)
vga0 <VGA-compatible display device> rev 0 int a irq 11 on pci0:11
ncr0 <ncr 53c810a scsi> rev 18 int a irq 10 on pci0:17
(ncr0:0:0): "QUANTUM VP32210 81H8" type 0 fixed SCSI 2
sd1(ncr0:0:0): Direct-Access 
sd1(ncr0:0:0): 10.0 MB/s (100 ns, offset 8)
2103MB (4308352 512 byte sectors)
(ncr0:2:0): "PIONEER CD-ROM DR-U12X 1.06" type 5 removable SCSI 2
cd0(ncr0:2:0): CD-ROM 
cd0(ncr0:2:0): asynchronous.
can't get the size
(ncr0:4:0): "SONY SDT-7000 0195" type 1 removable SCSI 2
st0(ncr0:4:0): Sequential-Access 
st0(ncr0:4:0): 10.0 MB/s (100 ns, offset 8)
density code 0x13, 512-byte blocks, write-enabled
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
psm0 at 0x60-0x64 irq 12 on motherboard
psm0: device ID 0
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
bt0: disabled, not probed.
npx0 flags 0x1 on motherboard
npx0: INT 16 interface
joy0 at 0x201 on isa
joy0: joystick
changing root device to sd0a
IP packet filtering initialized, divert disabled, logging limited to 100 packets/entry


machine         "i386"
cpu             "I486_CPU"
cpu             "I586_CPU"
cpu             "I686_CPU"
ident           GARM
maxusers        20

options         INET                    #InterNETworking
options         FFS                     #Berkeley Fast Filesystem
options         NFS                     #Network Filesystem
options         MSDOSFS                 #MSDOS Filesystem
options         "CD9660"                #ISO 9660 Filesystem
options         PROCFS                  #Process filesystem
options         "COMPAT_43"             #Compatible with BSD 4.3 [KEEP THIS!]
options         SCSI_DELAY=0            #Be pessimistic about Joe SCSI device
options         UCONSOLE                #Allow users to grab the console
options         FAILSAFE                #Be conservative
options         USERCONFIG              #boot -c editor
options         VISUAL_USERCONFIG       #visual boot -c editor

options         MFS                     #Memory File System

options         SYSVSHM
options         "SHMMAXPGS=1024"          # 4Mb of sharable memory
options         SYSVSEM
options         SYSVMSG

options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #print information about
                                        # dropped packets
options         "IPFIREWALL_VERBOSE_LIMIT=100" #limit verbosity


config          kernel  root on wd0

controller      isa0
controller      pci0

controller      fdc0    at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk            fd0     at fdc0 drive 0
disk            fd1     at fdc0 drive 1


# A single entry for any of these controllers (ncr, ahb, ahc, amd) is
# sufficient for any number of installed devices.
controller      ncr0
controller      ahc0
controller      bt0     at isa? port "IO_BT0" bio irq ? vector bt_isa_intr

controller      scbus0

device          sd0
device          od0     #See LINT for possible `od' options.
device          st0
device          cd0     #Only need one of these, the code dynamically grows


# syscons is the default console driver, resembling an SCO console
device          sc0     at isa? port "IO_KBD" tty irq 1 vector scintr

options         FAT_CURSOR              # start with block cursor

# Mandatory, don't remove
device          npx0    at isa? port "IO_NPX" flags 0x1 irq 13 vector npxintr
device          sio0    at isa? port "IO_COM1" tty irq 4 vector siointr
device          sio1    at isa? port "IO_COM2" tty irq 3 vector siointr
device          lpt0    at isa? port? tty irq 7 vector lptintr
device          psm0    at isa? disable port "IO_KBD" conflicts tty irq 12 vector psmintr

# ethernet
device fxp0

device          joy0    at isa? port "IO_GAME"


pseudo-device   loop
pseudo-device   ether
pseudo-device   log
pseudo-device   sl      1
pseudo-device   tun     1
pseudo-device   pty     16
pseudo-device   gzip            # Exec gzipped a.out's

pseudo-device   bpfilter        4       #Berkeley packet filter
pseudo-device   speaker         #Play IBM BASIC-style noises out your speaker
pseudo-device   vn      1       #Vnode driver (turns a file into a device)
pseudo-device   snp     3       #Snoop device - to look at pty/vty/etc..



# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options         KTRACE          #kernel tracing



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709082256.AAA04008>