Date: Mon, 27 Oct 2003 09:03:04 +0100 From: Uwe Doering <gemini@geminix.org> To: Rishi Chopra <rchopra@cal.berkeley.edu> Cc: questions@freebsd.org Subject: Re: Choosing A Stripe-Size (RAID5 Array) Message-ID: <3F9CD138.3000304@geminix.org> In-Reply-To: <MDENIIAHFGAKAOJHCEGLIEBMCGAA.rchopra@cal.berkeley.edu> References: <MDENIIAHFGAKAOJHCEGLIEBMCGAA.rchopra@cal.berkeley.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Rishi Chopra wrote: > I've had a tough time getting help for this question on the newsgroups and > freebsd.org discussion forums, so I thought I'd mail the list... > > I'm setting up a 600GB Raid-5 array (4-200GB 8MB Buffer IDE disks connected > to an Adaptec 2400A controller) and would like some help picking a > stripe-size (this is the smallest unit of data written to each disk by the > raid controller.) My usage pattern is fileserver and webserver+db, some > light desktop usage as well. I'll be using defaults for the file system > (16K block size.) > > Based on experience, can anyone suggest a good stripe-size choice? Also, if > this controller performs best with a particular stripe-size under FreeBSD > (due to driver design, etc.) please say so; I can always tweak the newfs > command line switches to accomodate a particular stripe-size choice. It depends on your priorities. If you are after sheer transfer speed a smaller stripe size is best because a single transaction is likely to be spread over multiple disks which then deliver the data in parallel. On the other hand, if your priority is not the transfer speed of a single transaction but rather the ability to process multiple transactions in parallel without too much congestion a bigger stripe size is preferred. This is because in this case smaller transfers are likely to be limited to only one disk per transaction, at least statistically. So in a four disk system you have still three disks left to process up to three other, independent transactions in parallel. This way the server is more resilient in a multi-client/multi-transaction environment. My recommendation for moderately to heavily used file servers with multiple clients is therefore to use a bigger stripe size. This also goes for web servers and DB servers as they are likely to cause multiple parallel disk transactions as well. I think 256 kB is the maximum for this controller, so you may want to pick that value. And there is no need to change the default block size of the file system in this scenario since this can lead to a performance degradation. The FreeBSD kernel is optimized for 16kB blocks. Uwe -- Uwe Doering | EscapeBox - Managed On-Demand UNIX Servers gemini@geminix.org | http://www.escapebox.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3F9CD138.3000304>