Skip site navigation (1)Skip section navigation (2)
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>