256K write buffer sizes seems an odd choice to me. It would seem that most mail filesystem interactions would be very small, 4k or 8k blocks. I would assume you would want to test operations for many little files random read and write access then sequential or large file access (obviously attachments would be larger though). I suppose the specific workload depends on your mail server's normal function.

I have seen in previous benchmarks that EXT3 appears to perform consistant overall without any significant jumps or dops in any filesystem operation. Although, ext3 is not particularly fast at anything. In contrast, I have seen reiserfs proven fast for handling many small files at once (squid mailing list frequently recommends), and XFS with it's advanced features never seems to place adequately. EXT2 is almost always fastest, but I would take reliability and fsck freedom over it's performance (journaled versus standard).

Here are some benchmarks;

http://vizzzion.org/?id=reiser4 -- Many Filesystems and Many Operations including the experimental Reiser4
http://kerneltrap.org/node/715 -- Many filesystems with a very basic test and contrast to EXT2 (including Reiser4)
http://linuxgazette.net/102/piszcz.html -- Fairly Detailed Testing of Many Filesystems on Kernel 2.4 (excluding Reiser4)

Happy Testing.


>>> Paul Gear<pgear@NOSPAMredlands.qld.edu.au> 10/27/05 10:57AM >>>

Hi folks,

I'm setting up a test GW7 system as a pilot before rolling out in
production. My disk subsystem is an EMC AX100i iSCSI disk array with 4
x 250 Gb SATA drives in a RAID 5 group. I'm using a 50 Gb volume within
that RAID group for testing. At this stage, i'm not using iSCSI HBAs
(TCP Offload Engine NICs).

I've been doing some basic disk performance testing using different file
system types, file sizes, and buffer sizes, and i've come up with some
interesting results, particularly in the area of file system selection:
ext2 is by far the best performing file system when using 256k write
buffer sizes (i haven't tested any other buffer sizes yet - my benchmark
script is still running). The next best performing file system is jfs
(about 30% behind ext2), and ext3, reiser, and xfs are about the same,
30% behind jfs.

My questions:
- What file and buffer sizes are going to best represent a normal GW
- Is there any way to determine this with GW? (i.e. Does GW gather I/O
stats that i can look at later for recommendations?)
- Should i be going for ext2 despite the fact that it's not journaled,
or should i expect the worst and go for a journaled file system (jfs
being the obvious choice)?
- Has anyone had any similar experiences with benchmarking file systems?
- Does any of this matter?