From owner-freebsd-hardware@FreeBSD.ORG Tue Jun 17 00:03:48 2003 Return-Path: Delivered-To: freebsd-hardware@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 98E6437B401 for ; Tue, 17 Jun 2003 00:03:48 -0700 (PDT) Received: from smilodon.ecst.csuchico.edu (smilodon.ecst.csuchico.edu [132.241.1.35]) by mx1.FreeBSD.org (Postfix) with SMTP id 0AAAD43F75 for ; Tue, 17 Jun 2003 00:03:46 -0700 (PDT) (envelope-from davey@ecst.csuchico.edu) Received: (qmail 20334 invoked by uid 23500); 16 Jun 2003 23:03:44 -0700 Date: Mon, 16 Jun 2003 23:03:43 -0700 (PDT) From: David Yucht To: freebsd-hardware@freebsd.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: Abysmal RAID1 write performance; ATA driver? X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 07:03:48 -0000 Finally getting around to asking for assistance with a bizarre problem with mirrored raid performance on 4.6-4.8 RELEASE. I've been using this particular system for about 18 months as a primary fileserver for my home lan and have had a nagging problem with it for about a year. Basically, one of the mirrored arrays on the box has a sustained write speed of about 1.2-1.8MB/s, making the box pretty much impossible to work with directly. The array works fine in Windows, just not Free. Right now there are 4 drives on two seperate RAID controllers (yes, the cruddy wannabe kind), one array being the OS and the other for data. ar0 is the data array, consisting of two 80GB IBM 120GXPs hung off an old Promise Fasttrak 100 flashed to the most recent bios. ar1 is the system array, composed of two 40GB IBM 60GXPs on an integrated HPT370. Read performance on the data array is perfectly fine. Doing a simple "dd if=/dev/ar0 of=/dev/null bs=1024k" results in a transfer rate of about 45MB/s. This is as expected, given a result of 38MB/s for the system array. However, once switching over to write data to the data array, things crap out. Doing a "dd if=/dev/zero of=/dev/ar0 bs=1024k" takes days, literally, as the speed is about 1.2-1.8 MB/s. On the system array, things are normal, about 20-30MB/s for writes. Please note, though, that when the disks are accessed independently on the data array, write performance is 35MB/s, i.e. perfectly normal. Disk performance is also up around 60MB/s for RAID0 arrays, so everything leads me to believe this is not hardware. I've been working on this problem on and off for the past year as time permits. So far I've tried tuning just about every relevant kernel value, destroying and recreating the array, digging around for patches and/or hacks, and covered all bases with the actual hardware. Different kernel configs have not helped, GENERIC results in problems as do home rolled configs. I've searched far and wide accross forums, various newsgroups, and spent more time with google than family. Still no clue and nobody else with a similar problem. Yes, I am considering replacing the controller, but will be unable to do so for a few more months. That still doesn't satisfy my need for knowing why this is happening, though. ~Regards Here are the relevant dumps: dmesg ---------------------- FreeBSD 4.8-STABLE #0: Tue May 27 22:34:34 PDT 2003 root@invalid.domain.net:/usr/obj/usr/src/sys/LITE Timecounter "i8254" frequency 1193182 Hz CPU: Intel(R) Celeron(TM) CPU 1100MHz (1115.37-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6b1 Stepping = 1 Features=0x383f9ff< FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MC A,CMOV,PAT,PSE36,MMX,FXSR,SSE> real memory = 536805376 (524224K bytes) avail memory = 518930432 (506768K bytes) Preloaded elf kernel "kernel" at 0xc0354000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 11 entries at 0xc00fd950 npx0: on motherboard npx0: INT 16 interface pcib0: on motherboard pci0: on pcib0 agp0: mem 0xd0000000-0xd3ffffff at device 0.0 on pci0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: <3Dfx Voodoo 3 graphics accelerator> at 0.0 irq 5 pcib2: at device 30.0 on pci0 pci2: on pcib2 atapci0: port 0xa000-0xa03f,0x9c00-0x9c03,0x9800-0x9807,0x9400-0x9403,0x9000-0x9007 mem 0xdb000000-0xdb01ffff irq 15 at device 1.0 on pci2 ata2: at 0x9000 on atapci0 ata3: at 0x9800 on atapci0 fxp0: port 0xa400-0xa43f mem 0xdb020000-0xdb03ffff,0xdb040000-0xdb040fff irq 14 at device 3.0 on pci2 fxp0: Ethernet address 00:02:b3:c9:4e:70 inphy0: on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto atapci1: port 0xb800-0xb8ff,0xb400-0xb403,0xb000-0xb007,0xac00-0xac03,0xa800-0xa807 irq 11 at device 6.0 on pci2 ata4: at 0xa800 on atapci1 ata5: at 0xb000 on atapci1 isab0: at device 31.0 on pci0 isa0: on isab0 uhci0: port 0xd000-0xd01f irq 14 at device 31.2 on pci0 usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered pci0: (vendor=0x8086, dev=0x2443) at 31.3 irq 0 uhci1: port 0xd400-0xd41f irq 7 at device 31.4 on pci0 usb1: on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered pci0: (vendor=0x8086, dev=0x2445) at 31.5 irq 15 orm0: