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>
