Date: Fri, 19 Feb 1999 11:33:30 +1030 From: Greg Lehey <grog@lemis.com> To: shimon@simon-shapiro.org Cc: "Bryn Wm. Moslow" <bryn@spacemonster.org>, freebsd-isp@FreeBSD.ORG Subject: Re: DPT 3334UW RAID-5 Slowness / Weird FS problems Message-ID: <19990219113330.C14890@lemis.com> In-Reply-To: <XFMail.990217120701.shimon@simon-shapiro.org>; from Shimon Shapiro on Wed, Feb 17, 1999 at 12:07:01PM -0500 References: <19990216105959.P2207@lemis.com> <XFMail.990217120701.shimon@simon-shapiro.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, 17 February 1999 at 12:07:01 -0500, Shimon Shapiro wrote: > > Greg Lehey, On 16-Feb-99 you wrote: >> On Monday, 15 February 1999 at 13:08:22 -0800, Bryn Wm. Moslow wrote: >>> I recently installed a DPT 3334UW with 64MB cache in a mail server >>> running RAID-5 with a 32K stripe on an external case on which the user >>> mail spool is mounted. The array is comprised of 6 Seagate Ultra Wide >>> 4.5GB SCA drives. The system is a P2 300 with 384MB and uses an >>> additional Seagate UW drive for boot, /usr, /var, swap, and staff home >>> directories. It doesn't go into swap often but if it does it only hits >>> about 5 to 10 MB. The system is running FreeBSD 2.2.8. >> >> I don't know the DPT controllers, but 32 kB stripes are far too small. >> For better performance, you should increase them to between 256 kB and >> 512 kB. Small stripe sizes create many more I/O requests at the drive >> level. > > It highly depends on the amount of cache memory on the card and the nature > of the access. If I/O is sequential in nature, then Greg is correct. If > it is highly fragmented and random (as in most DBMS), then Greg is only > correct if there is a lot of memory and access is to large blocks. As I said, FreeBSD I/O requests range in size between 512 bytes and 60 kB. With a 16 kB stripe size, you would need to have an average block size of about 1 kB in order to avoid significant performance impact. DBMSs tend to read and write blocks of 16 kB or so. >>> If I format with the default settings to newfs, everything works >>> fine. The same hang also occurs if I try to do 16K block size. I >>> haven't tried anything bigger as I had an extremely tight window in >>> which to get the machine online. >> >> You should consider that once you have set the stripe size, you're >> stuck with it. Unless the DPTs have a good reason (like "not >> supported"), take a 256 kB stripe size. > > a. Newfs parameters have nothing to do with the SCSI HBA (DSPT or > otherwise. If 16k block size hangs, it is a bug elsewhere. > I studied such complaint long, long ago (on FreeBSD 3.0) and the > requests did not even hit the DPT. > But, like Greg said, this has almost no bearing on perfromance... > > b. The DPT firmware will take up to 1MB stripes. Beware there is no more > than 64MB of cache on the card (if that much), and very large stripes > may consume all the cache quickly and inefficiently. Do you have any information about how the controller uses the cache? From the design of Vinum, I would expect that these memory areas would not be cached. Vinum will never use more memory than is needed to satisfy the request, so this makes a maximum of 60 kB per request. Memory use for fragmented requests is higher, not lower. Greg -- See complete headers for address, home page and phone numbers finger grog@lemis.com for PGP public key To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990219113330.C14890>