From owner-freebsd-current Mon Sep 8 15:56:16 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id PAA12075 for current-outgoing; Mon, 8 Sep 1997 15:56:16 -0700 (PDT) Received: from smtp.algonet.se (angel.algonet.se [194.213.74.112]) by hub.freebsd.org (8.8.7/8.8.7) with SMTP id PAA12064 for ; Mon, 8 Sep 1997 15:56:09 -0700 (PDT) Received: (qmail 26719 invoked from network); 8 Sep 1997 22:56:06 -0000 Received: from kairos.algonet.se (HELO kairos) (mal@194.213.74.18) by angel.algonet.se with SMTP; 8 Sep 1997 22:56:06 -0000 Received: (mal@localhost) by kairos (SMI-8.6/8.6.12) id AAA04008; Tue, 9 Sep 1997 00:56:05 +0200 Date: Tue, 9 Sep 1997 00:56:05 +0200 Message-Id: <199709082256.AAA04008@kairos> From: Mats Lofkvist To: current@FreeBSD.ORG Subject: Re: lousy disk perf. under cpu load (was IDE vs SCSI) Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > 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,MTRR,PGE,MCA,CMOV> real memory = 67108864 (65536K bytes) avail memory = 63733760 (62240K bytes) Probing for devices on PCI bus 0: chip0 rev 2 on pci0:0 fxp0 rev 1 int a irq 10 on pci0:6 fxp0: Ethernet address 00:a0:c9:49:bb:9f chip1 rev 1 on pci0:7:0 chip2 rev 0 on pci0:7:1 ahc0 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 rev 0 int a irq 11 on pci0:11 ncr0 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