Disk block size tuning - multiple questions

Boring, Andrew Andrew.Boring at millerzell.com
Mon Nov 10 08:33:19 PST 2003


First question:
I am configuring a server to hold source trees for 4.8/4.9 and maybe -current for production and experimental upgrades on my several FreeBSD servers. Currently, I only keep the -release sources for maintaining patchlevels on the individual boxes themselves. The last time I started adding the -current source tree on a non-production server, I ran out of inodes before actually completing the CVS sync. What newfs blocksize/fragment size and inode density is optimal for 10 to 16 GB partition containing just source trees? The default stripe size on the RAID controller is set to 128k for mirrored drives.

Hardware: Compaq ProLiant DL360, dual 18GB (mirrored) drives, with Compaq 5i SmartArray controller. FreeBSD 5.1

Next question:
Are there optimal newfs block/fragment/inode options for a quad-disk, 1+0 RAID for a mail server running Postfix? Specifically, the queue directory and the home (Maildir) directories are what I'll need to optimize. I think the queue directory will be heavy read/write, whereas I imagine that the Maildir directories (kept on a different partition) will be more write-intensive over-all. The queue directory will reside on a (approximately) 1 GB /var partition, and the Maildirs will be on a roughly 27 GB /home partition (no other user files on /home). The default stripe size on the RAID controller is set to 128k for mirrored drives. I was looking at the tuning(7) recommendations of something like block size 8192 and frag size 1024 for the queue and Maildir directories. SInce Maildir will have to accomodate occasional large files with attachments, this seems like it might be a happy medium. I don't have a specific usage pattern developed on the number of/size of email files and attachments, so I am planning on a vague, nebulous "average email use".

Hardware: SGI 1200, quad 18GB (RAID 1+0) drives, Compaq 4200 SmartArray controller, FreeBSD 4.9

Another question:
I've been doing a lot of reading on filesystem/RAID levels for database use (I'm not a DB guy). I don't have a server ready for this yet, but i would like some generic recommendations on filesystem setup. I've read that mirrored stripes (0+1 or 1+0) is better overall than RAID 5. Any other tuning tips, such as block size, inode, async/sync/softupdates, etc for a partition to hold an SQL database (such as MySQL or Postgres, etc)? The tuning(7) man page seems to indicate a default block size (16k) but fewer inodes for databases.

Hardware: SGI 1200, quad 18GB (RAID 1+0) drives, Compaq 4200 SmartArray controller, FreeBSD 4.9

Last question:
With a good battery-backed caching controller (such as the Compaq SmartArray cards), is SoftUpdates of any use? My understanding is that SoftUpdates does in software the same sort of caching that RAID controllers would do. Am I correct or way off base? Should I mount all drives synchronous without SoftUpdates, or asynchronous with SoftUpdates, or what is the recommended choice when using real server-class SCSI RAID controllers? I am more concerned overall with higher-availability than higher-performance.

Thanks in advance!
(please Cc: me on all responses for this thread; I'm not subscribed)

Andrew Boring
Miller Zell Desktop Services
<andrew.boring at millerzell.com> 

"Microsoft DNS service terminates abnormally when it receives a
response to a dns query that was never made. Fix information: run your
DNS service on a different platform." -- bugtraq

More information about the freebsd-questions mailing list