Chapter 4. Tuning the operating system 121
Draft Document for Review May 4, 2007 11:35 am 4285ch04.fm
4.6.3 File system selection and tuning
As stated in 1.3, “Linux file systems” on page 15 the different file systems that are available
for Linux have been designed with different workload and availability characteristics in mind. If
your Linux distribution and the application allow the selection of a different file system, it might
be worthwhile to investigate if Ext, Journal File System (JFS), ReiserFS or eXtended File
System (XFS) is the optimal choice for the planned workload. Generally speaking ReiserFS is
more suited to accommodate small I/O requests whereas XFS and JFS are tailored toward
very large file systems and very large I/O sizes. Ext3 fits the gap between ReiserFS and
JFS/XFS since it can accommodate small I/O requests while offering good multi-processor
scalability.
The workload patterns JFS and XFS are best suited for are high-end data warehouses,
scientific workloads, large SMP servers or streaming media servers. ReiserFS and Ext3 on
the other hand are what would typically be used for a file, web, mail serving. For write intense
workloads that create smaller I/Os up to 64kB, ReiserFS may have an edge over Ext3 with
default journaling mode as displayed in the chart in Figure 4-11. However this holds only true
for synchronous file operations.
An option to consider is the Ext2 file system. Due to it’s lack of journaling abilities Ext2
outperforms ReiserFS and Ext3 for synchronous file system access no matter what the
access pattern and I/O size may be. Ext2 may hence be an option where performance is
much more important than data integrity.
Figure 4-11 Random write throughput comparison between Ext and ReiserFS (synchronous)
In the most common scenario of an asynchronous file system ReiserFS most often delivers
solid performance and outperforms Ext3 with the default journaling mode (data=ordered). It
should be noted however that Ext3 is on par with ReiserFS as soon as the default journaling
mode is switched to writeback as the chart below illustrates (please refer to Figure 4-12).
0
10000
20000
30000
40000
50000
60000
70000
80000
kB/sec
4 8 16 32 64 128 256 512 1024 2048
kB/op
Ext2
Ext3
Ext3 Writeback
ReiserFS