file system performance benchmark ext4, jfs, xfs, reiserfs
This is not a real benchmark. We simply did some testing before we have setup our new server. We wanted to compare the file systems and see what happens. The results were quite surprising.
Method: simple shell script to copy ~220.000 files (2.4G, Linux /usr content) and delete them again. The files are copied on the same Volume. To do that, the script unmounts the volume, copies a branch to the empty volume, calls system sync, clears the system cache and starts duplicating / copying that branch. Basically, all caching is bypassed this way.
Hardware: 3ware 9690 8ai, Raid 6, 8*2TB SATA disks, Intel S5520hc board, 3*4G RAM (Triple channel)
System: gentoo linux Kernel 2.6.32 (64bit)
Test Volume: ~11,9 TB (varied due to varying file systems), read ahead 16384 (blockdev –setra)
m:ss fs + mount options
1:26 ext4 noatime,data=writeback,barrier=0,nobh,0 2 (–setra 16384)
1:32 ext4 noatime,data=writeback,barrier=0,nobh,0 2 (–setra 256)
2:07 xfs noatime
2:08 xfs noatime,nodiratime,nobarrier,logbufs=8
2:11 xfs noatime,nodiratime,logbufs=8
5:02 jfs noatime
0:00 reiserfs3 failed with I/O error
To be honest, we wanted to switch from Reiser (used for years) to XFS or JFS. But we thought since EXT4 got a couple of nice reviews, we give it a try. Reiser is not an option for a production environment at the moment since a server needs to work a couple of years and we have no clue on what’s gonna happen with ReiserFS in the future. So we needed to switch. Too bad reiser3 failed in the test. It gave an I/O error while copying. We tried 3 times (format, mount, run the test) – every time the journal got broken. So we gave up.
Since copying a Linux /usr branch involves all kinds of files with all kinds of sizes and permissions, that test delivered quite comparable results. I guess the biggest surprise was to see EXT4 winning by far. We did not measure throughput but rather the time it takes to execute overall. Good job, ext4!