Linux 2.4.x Journaling File Systems: Performance Data

Randy Dunlap (rddunlap@osdlab.org)

2001.August.29




This report presents some initial data concerning the performance of four (4) journaling file systems (ext3fs, IBM's JFS, reiserfs, and SGI's XFS) in Linux 2.4.7. ext2fs is used as a baseline comparison for the journaling file systems.


IOzone version 3.61 (http://www.iozone.org/) is used as the benchmark tool (or workload). The data presented are: machine configurations, total times to run the workload (elapsed and CPU), and IOzone timing reports. The IOzone timing reports are created as both text files and Excel- or (Star Office Calc)-formatted (.xls) files.



Overview


IOzone version 3.61 was used to measure the performance of four journaling file systems in Linux 2.4.7. Only reiserfs is included in the kernel source tree; the other three are external patch files.


The data presented here are: machine configurations, total times to run the workload (elapsed and CPU), and IOzone timing reports. The IOzone timing reports are created as both text files and Excel- or (Star Office Calc)-formatted (.xls) files.


While IOzone is used as the workload for the data presented here, other benchmarks and workloads can be found at various (Linux) benchmarking web sites, such as the Linux Benchmark Suite (http://lbs.sf.net). See the References section for a list of benchmarking web sites.


These tests are being done in order to use and test these journaling file systems on large-configuration systems. The particular system used for this series of runs is a VA Linux model 4450 4-processor server. It was limited to 256 MB of RAM to satisy IOzone memory requirements (that the file size be larger than system memory). The target storage subsystem is a 10-drive RAID-1 array of 169 GB that is connected via a Qlogic IPS2200 fibre channel controller.


The CPU times reported here are for complete IOzone runs. I am in the process of adding CPU utilization to the individual IOzone tests.


Contributions


Additions and corrections are welcome. Please send them to rddunlap@osdlab.org.


Trademarks


All trademarks are the property of their respective owners.


License


Copyright (C) 2001 Randy Dunlap.



Filesystem versions and Web locations


FS type

FS version

FS URL

ext2fs

in Linux 2.4.7

www.kernel.org

ext3fs

ext3-2.4-0.9.5-247.gz

http://www.uow.edu.au/~andrewm/linux/ext3/

JFS

1.0.2

http://oss.software.ibm.com/jfs/

reiserfs

in Linux 2.4.7

www.kernel.org and www.reiserfs.org and www.namesys.com

XFS

patch-2.4.7-xfs-2001-07-27.bz2

http://oss.sgi.com/projects/xfs/



The patch maintainers have made all of these filesystem patches very easy to apply and test. I haven't tried to convert any existing filesystems to these new filesystem types, but using them on a spare disk partition is very easy to do: just build the kernel, boot it, make the filesystem on the disk partition, mount it, and test away.




Filesystem mount options (journaling type[s])


FS type

Journaling type

ext2fs

(not applicable)

ext3fs

data=ordered (default, although data=writeback should be faster)

JFS

(default)

reiserfs

(defaults)

XFS

(default)




Iozone Run times


FS type

Times

Full 'time' output

ext2fs

30.60user 482.16system 2:47:52elapsed 5%CPU

247-ext2nox.times

ext3fs

35.35user 745.08system 2:52:05elapsed 7%CPU

247-ext3nox.times

JFS

32.51user 493.11system 2:46:54elapsed 5%CPU

247-jfsnox.times

reiserfs

37.58user 687.47system 2:52:46elapsed 6%CPU

247-rfsnox.times

XFS

33.86user 514.78system 2:47:48elapsed 5%CPU

247-xfsnox.times




Iozone Run reports


These files contain the Iozone output data, both in text and Excel (or Star Office Calc) spreadsheet formats. For each test run, this includes Iozone parameters and I/O throughtput reports for various filesystem operations: write, re-write, read, re-read, random read, random write, backward read, record re-write, stride read, fwrite, re-fwrite, fread, and re-fread.



FS type

Report text file

Report .xls file

ext2fs

247-ext2nox.report

247-ext2nox.xls

ext3fs

247-ext3nox.report

247-ext3nox.xls

JFS

247-jfsnox.report

247-jfsnox.xls

reiserfs

247-rfsnox.report

247-rfsnox.xls

XFS

247-xfsnox.report

247-xfsnox.xls




Graphs


Here are some selected graphs created from the Run reports above.


FS type

Seq. writes

Seq. reads

Random reads

Random writes

ext2fs

ext2writes.png

ext2reads.png

ext2randreads.png

ext2randwrites.png

ext3fs

ext3writes.png

ext3reads.png

ext3randreads.png

ext3randwrites.png

JFS

jfswrites.png

jfsreads.png

jfsrandreads.png

jfsrandwrites.png

reiserfs

rfswrites.png

rfsreads.png

rfsrandreads.png

rfsrandwrites.png

XFS

xfswrites.png

xfsreads.png

xfsrandreads.png

xfsrandwrites.png



Here are a few FS-comparison graphs.


Comparison

Graph

16 MB file, random reads

cf_randreads.png

1 MB file, random writes

cf_randwrites.png

64 MB file, sequential reads

cf_seqreads.png

8 MB file, sequential writes

cf_seqwrites.png




Machine configuration data


These files contain machine configuration data for each test run.


FS type

Configuration report

ext2fs

247-ext2nox.info

ext3fs

247-ext3nox.info

JFS

247-jfsnox.info

reiserfs

247-rfsnox.info

XFS

247-xfsnox.info




References


IOzone benchmark: URL: http://www.iozone.org/

Linux Benchmark Suite: URL: http://lbs.sourceforge.net/

Benchmark information: URL: http://hpwww.epfl.ch/bench/bench.html

BenchWeb: URL: http://www.netlib.org/benchweb/code.html

Disk I/O benchmarks: URL: http://www.acnc.com/benchmarks.html

LMbench: URL: http://www.bitmover.com/lmbench/

Netperf: http://www.netperf.org/netperf/NetperfPage.html

SPEC benchmarks: URL: http://www.spec.org/

TPC benchmarks: URL: http://www.tpc.org/

ttcp: URL: ftp://ftp.arl.mil/pub/ttcp/

Web Polygraph: URL: http://polygraph.ircache.net/



Updates


2001.August.27:

. fix a graphics file hyperlink

. add FS URLs and versions

. add this Updates section

. make hyperlinks look like links


2001.August.29:

. add FS mount options table

. regenerate .png files to make them viewable (labels)

. add a few FS comparison graphs


###