random quote:"It is your concern when your neighbor's wall is on fire."

Quintus Horatius Flaccus (Horace)

reiser4 benchmarks.

I had a look at the new version of Reiserfs, reiser4. I read that it would be much faster than all current filesystems for Linux, so I couldn't stand giving it a shot. I formatted a partition with some recent journalling filesystems and ran some benchmarks with different programs.

benchmarking method.

procedure - fs-bench.py.

All tests are run on the same partition, a 20GB Partition at the end of the disk, the disk has been reformatted for every test-run with the filesystem mentioned. I wrote a small script, fs-bench.py in order to get an idea what benefits ReiserFS 4 would have on my daily work. I ran it on three different partitions, one has been formatted with reiser4, one with reiserfs 3.6 and one with ext3.
Also, the tests were executed in Single User Mode. After having the machine boot, I executed the script for a couple of times in order to fill caches.

The benchmark script issues the following commands and collects their execution time:

tar xjf linux-2.6.5.tar.bz2

tar cf test.tar linux-2.6.5/

grep -r fuck linux-2.6.5/

cp -R linux-2.6.5/ test/

find linux-2.6.5/ foobar

rm -rf linux-2.6.5/ test/

slow

bonnie++ -s 1g -n 5 -x 1 -u 0

I benchmarked the following filesystems:

reiserfs 3.6

ext3 in data mode data=ordered

ext3 in data mode data=writeback

ext3 in data mode data=journal

reiser4 default

xfs

jfs

kernel.

I ran the tests on a Vanilla 2.6.4 Kernel with the -ck2 patch from Con Kolivas. The patchset contains the reiserfs4 snapshot from 20040326. Additionally the kernel has been patched with swsusp and a patch for making reiser4 swsusp-compatible.

userspace.

For the tests, I have used the following tools for the benchmark:

rm, mv, cp (coreutils) 5.0.91

GNU find version 4.1.20

tar (GNU tar) 1.13.93

grep (GNU grep) 2.5.1

bzip2, a block-sorting file compressor. Version 1.0.2, 30-Dec-2001.

GNU find version 4.1.20

Python 2.3.3 (#2, Feb 24 2004)

gcc (GCC) 3.3.3 (Debian 20040401)

bonnie++ 1.03a Hard drive bottleneck testing benchmark suite.

slow.c is a benchmark program from the ReiserFS team. I found on the Reiserfs4 website.

The packages are standard debian / sid software at the moment of writing. reiser4progs, containing the mkfs and fsck tools have already found their way into debian sid.
Both reiser 3 and 4 filesystems are located on the same disk, I also ran the benchmark in reverse order, the results did not differ.

hardware.

I ran the tests on my workstation. The test have been run on an IBM / Hitachi Deathstar (model no.: Model=IC35L060AVV207-0, FwRev=V22OA66A, SerialNo=VNVB02G2C4PART).

results.

Beginning on the left, the bars stand for ReiserFS 4 (lighter blue), ReiserFS 3 (dark red), ext3 ordered (yellow), ext3 writeback (turquoise), ext journal (dark purple), XFS (lighter red) and JFS (blue).
I would expect that uncompressing a tar archive would not have made much of a difference between the filesystems as it is the CPU being the bottleneck. Much more variation can be seen when creating a tar archive. reiser4 seems to do a good job, it's much faster than reiserfs 3, but beaten by JFS. Notably, XFS performs worst.

reiser4 seems to be pretty fast with unlinking and copying of small files.

grep does not seem to work in favor of reiser4 and find is, where reiser4 performs worst of all compared filesystems.

bonnie++ does not show that much differences between the competitors. Some more variation van be seen with slow.c, where ext3 with data=writeback seems to really do a bad job. reiser4, xfs and jfs seem to perform all pretty well. slow.c, by the way is a benchmarking tool from the ReiserFS team.

[Hang on, there's more to come, I have some more benchmarks in the pipeline!]

figures.

benchmark results

tar bzip2

tar create

grep -r

cp -t

find

rm

bonnie++

slow

total

Reiserfs 4.0

47.6

3.87

1.61

6.13

0.27

5.58

272.8

52.7

390.55

Reiserfs 3.6

43.81

13.99

2.93

25.65

0.23

3.02

284.29

73.65

447.56

Ext3 data=ordered

43.73

5.78

1.24

3.6

0.18

10.5

280.41

94.05

439.49

Ext3 data=writeback

42.24

2.09

1.42

6

0.19

15.43

267.98

469.38

804.74

Ext3 data=journal

58.2

14.01

1.73

18.69

0.17

4.87

421.37

114.19

633.23

XFS

51.99

22.4

1.24

24.45

0.19

13.01

279.8

52.9

445.98

JFS

54.92

2.02

1.11

34.18

0.23

20.81

264.08

53.39

430.72

(all values in seconds)

conclusion.

Overall reiser4 seems to win it, although the results are not weighed. In most cases, reiser4 does a pretty good job. When it comes to copying lots of small files, reiser4 is very fast, especially compared to xfs, end even more to compared to jfs.

It seems that, apart from all other features, users of reiserfs 3 will gain lots of speed when upgrading to reiser4.
Running the benchmarks on a spare disk was a very good idea. ;-)