Linux 3.4 Kernel File-Systems - XFS, Btrfs, EXT4

Benchmarks of the EXT4, Btrfs, XFS file-systems on an Intel SSD under Ubuntu 12.04 LTS x86_64. Benchmarking of the Btrfs/XFS/EXT4 file-systems with the Linux 3.2, Linux 3.3, and Linux 3.4 development kernels. Testing for a future article on Phoronix.

HTML result view exported from: https://openbenchmarking.org/result/1206088-BY-1205299SU76&sro.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionEXT4BtrfsXFSBtrfs Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.4 UZIntel Core i5-2520M @ 2.50GHz (4 Cores)HP 161CIntel 2nd Generation Core Family DRAM1 x 4096 MB DDR3-1333MHz160GB INTEL SSDSA2M160Intel Sandybridge Mobile (GT2+) (1300MHz)IDT 92HD81B1X5Intel 82579LM Gigabit Connection + Intel Centrino Advanced-N 6205Ubuntu 12.043.2.0-030200-generic (x86_64)Unity 5.10.0X Server 1.11.3intel 2.17.03.0 Mesa 8.0.2GCC 4.6ext41600x9003.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)3.2.0-030200-generic (x86_64)btrfs3.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)3.2.0-030200-generic (x86_64)xfs3.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)Intel Xeon E31230 @ 3.20GHz (8 Cores)Supermicro X9SCL/X9SCMIntel Xeon E3-1200 Family DRAM2 x 4096 MB DDR3-1333MHz20 x 3001GB Western Digital WD30EZRX-00M + 160GB Seagate ST9160314AS + 320GB Western Digital WD3200AAKX-0Matrox s MGA G200eW WPCM450Intel 82579LM Gigabit ConnectionDebian Linux Wheezy/sid3.4.0 (x86_64)btrfsOpenBenchmarking.orgCompiler Details- EXT4: Linux 3.2: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- EXT4: Linux 3.3: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- EXT4: Linux 3.4 Git: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- Btrfs: Linux 3.2: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- Btrfs: Linux 3.3: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- Btrfs: Linux 3.4 Git: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- XFS: Linux 3.2: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- XFS: Linux 3.3: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- XFS: Linux 3.4 Git: --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -v- Btrfs: Linux 3.4 UZ: --build=x86_64-linux-gnu --enable-checking=release --enable-clocale=gnu --enable-languages=c,c++,fortran,objc,obj-c++,go --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i586 --with-tune=generic -vDisk Details- EXT4: Linux 3.2: CFQ / barrier=1,data=ordered,errors=remount-ro,relatime,rw,user_xattr- EXT4: Linux 3.3: CFQ / barrier=1,data=ordered,errors=remount-ro,relatime,rw,user_xattr- EXT4: Linux 3.4 Git: CFQ / data=ordered,errors=remount-ro,relatime,rw- Btrfs: Linux 3.2: CFQ / nospace_cache,relatime,rw,ssd- Btrfs: Linux 3.3: CFQ / nospace_cache,relatime,rw,ssd- Btrfs: Linux 3.4 Git: CFQ / nospace_cache,relatime,rw,ssd- XFS: Linux 3.2: CFQ / attr2,delaylog,noquota,relatime,rw- XFS: Linux 3.3: CFQ / attr2,noquota,relatime,rw- XFS: Linux 3.4 Git: CFQ / attr2,noquota,relatime,rw- Btrfs: Linux 3.4 UZ: CFQ / attr2,noquota,relatime,rwProcessor Details- EXT4: Linux 3.2, EXT4: Linux 3.3, EXT4: Linux 3.4 Git, Btrfs: Linux 3.2, Btrfs: Linux 3.3, Btrfs: Linux 3.4 Git, XFS: Linux 3.2, XFS: Linux 3.3, XFS: Linux 3.4 Git: Scaling Governor: ondemandSystem Details- EXT4: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- EXT4: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- EXT4: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.4 UZ: Disk Scheduler: CFQ. Python 2.7.3rc2.

fs-mark: 1000 Files, 1MB Sizefs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizedbench: 1iozone: 1MB - 8GB - Read Performanceiozone: 4Kb - 8GB - Read Performanceiozone: 1MB - 8GB - Write Performanceiozone: 4Kb - 8GB - Write Performanceiozone: 64Kb - 8GB - Read Performanceiozone: 64Kb - 8GB - Write Performancetiobench: Rand Write - 64MB - 8compilebench: Compilecompilebench: Initial Createapache: Static Web Page ServingEXT4BtrfsXFSBtrfs Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.4 UZ90.2778.47192.85233.55254.77100.49100.34254.79100.5390.01106.7098.4520805.2085.6076.70207.46254.87254.75100.39100.41254.73100.5789.54105.6494.7719441.7585.3075.67208.52254.70254.8099.20100.02254.69100.5489.14104.8698.9420564.7773.8762.77161.31223.99225.6899.3499.07225.1399.2289.65105.8858.8119169.1482.7063.30173.53223.83223.6599.4599.37224.7899.5088.56106.3453.9518619.5566.5360.47164.40231.21226.7598.8698.98232.1299.2891.82104.8951.9219679.5890.5781.60159.11205.67242.41101.22100.98242.91101.3587.26104.7787.2619672.2284.6581.50169.94237.01240.18101.86101.62239.49102.1487.66102.7389.4318854.7586.9079.07165.05238.77239.47100.8396.41183.0299.6978.3295.4274.7819964.009.409.534.51136.96137.40165.84165.13135.25163.2055.48379.63171.5729171.23OpenBenchmarking.org

FS-Mark

Test: 1000 Files, 1MB Size

BtrfsEXT4XFSOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ20406080100SE +/- 4.63, N = 6SE +/- 1.40, N = 3SE +/- 3.66, N = 6SE +/- 0.10, N = 3SE +/- 0.92, N = 3SE +/- 0.89, N = 3SE +/- 1.47, N = 3SE +/- 0.55, N = 3SE +/- 1.35, N = 6SE +/- 1.48, N = 373.8782.7066.539.4090.2785.6085.3090.5784.6586.901. (CC) gcc options: -static

FS-Mark

Test: 4000 Files, 32 Sub Dirs, 1MB Size

BtrfsEXT4XFSOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ20406080100SE +/- 0.37, N = 3SE +/- 0.99, N = 6SE +/- 0.15, N = 3SE +/- 0.09, N = 3SE +/- 0.54, N = 3SE +/- 0.06, N = 3SE +/- 0.20, N = 3SE +/- 0.64, N = 3SE +/- 0.65, N = 3SE +/- 1.16, N = 362.7763.3060.479.5378.4776.7075.6781.6081.5079.071. (CC) gcc options: -static

Dbench

Client Count: 1

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 1Linux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ50100150200250SE +/- 0.29, N = 3SE +/- 0.13, N = 3SE +/- 0.32, N = 3SE +/- 0.02, N = 3SE +/- 1.17, N = 3SE +/- 0.05, N = 3SE +/- 0.11, N = 3SE +/- 0.50, N = 3SE +/- 0.30, N = 3SE +/- 0.22, N = 3161.31173.53164.404.51192.85207.46208.52159.11169.94165.051. (CC) gcc options: -lpopt

IOzone

Record Size: 1MB - File Size: 8GB - Disk Test: Read Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 1MB - File Size: 8GB - Disk Test: Read PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ60120180240300SE +/- 1.77, N = 3SE +/- 1.66, N = 3SE +/- 4.22, N = 3SE +/- 0.92, N = 3SE +/- 3.53, N = 6SE +/- 0.04, N = 3SE +/- 0.10, N = 3SE +/- 1.27, N = 3SE +/- 1.27, N = 3SE +/- 0.91, N = 3223.99223.83231.21136.96233.55254.87254.70205.67237.01238.771. (CC) gcc options: -O3

IOzone

Record Size: 4Kb - File Size: 8GB - Disk Test: Read Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Read PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ60120180240300SE +/- 0.44, N = 3SE +/- 0.23, N = 3SE +/- 1.71, N = 3SE +/- 2.54, N = 3SE +/- 0.02, N = 3SE +/- 0.05, N = 3SE +/- 0.00, N = 3SE +/- 3.51, N = 3SE +/- 1.53, N = 3SE +/- 0.69, N = 3225.68223.65226.75137.40254.77254.75254.80242.41240.18239.471. (CC) gcc options: -O3

IOzone

Record Size: 1MB - File Size: 8GB - Disk Test: Write Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 1MB - File Size: 8GB - Disk Test: Write PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ4080120160200SE +/- 0.21, N = 3SE +/- 0.08, N = 3SE +/- 0.19, N = 3SE +/- 3.03, N = 6SE +/- 0.15, N = 3SE +/- 0.07, N = 3SE +/- 1.07, N = 3SE +/- 0.31, N = 3SE +/- 0.37, N = 3SE +/- 1.28, N = 399.3499.4598.86165.84100.49100.3999.20101.22101.86100.831. (CC) gcc options: -O3

IOzone

Record Size: 4Kb - File Size: 8GB - Disk Test: Write Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Write PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ4080120160200SE +/- 0.23, N = 3SE +/- 0.06, N = 3SE +/- 0.19, N = 3SE +/- 1.33, N = 3SE +/- 0.14, N = 3SE +/- 0.11, N = 3SE +/- 0.06, N = 3SE +/- 0.69, N = 3SE +/- 0.52, N = 3SE +/- 1.46, N = 399.0799.3798.98165.13100.34100.41100.02100.98101.6296.411. (CC) gcc options: -O3

IOzone

Record Size: 64Kb - File Size: 8GB - Disk Test: Read Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 64Kb - File Size: 8GB - Disk Test: Read PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ60120180240300SE +/- 0.51, N = 3SE +/- 0.56, N = 3SE +/- 3.95, N = 6SE +/- 0.49, N = 3SE +/- 0.04, N = 3SE +/- 0.05, N = 3SE +/- 0.06, N = 3SE +/- 2.52, N = 3SE +/- 2.75, N = 3SE +/- 4.39, N = 6225.13224.78232.12135.25254.79254.73254.69242.91239.49183.021. (CC) gcc options: -O3

IOzone

Record Size: 64Kb - File Size: 8GB - Disk Test: Write Performance

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 64Kb - File Size: 8GB - Disk Test: Write PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ4080120160200SE +/- 0.22, N = 3SE +/- 0.14, N = 3SE +/- 0.18, N = 3SE +/- 2.57, N = 3SE +/- 0.10, N = 3SE +/- 0.25, N = 3SE +/- 0.06, N = 3SE +/- 0.67, N = 3SE +/- 0.11, N = 3SE +/- 0.49, N = 399.2299.5099.28163.20100.53100.57100.54101.35102.1499.691. (CC) gcc options: -O3

Threaded I/O Tester

Test: Random Write - Size Per Thread: 64MB - Thread Count: 8

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 64MB - Thread Count: 8Linux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ20406080100SE +/- 1.66, N = 8SE +/- 1.66, N = 8SE +/- 0.96, N = 4SE +/- 3.11, N = 8SE +/- 0.20, N = 4SE +/- 0.42, N = 4SE +/- 0.73, N = 4SE +/- 0.56, N = 4SE +/- 0.39, N = 4SE +/- 10.03, N = 889.6588.5691.8255.4890.0189.5489.1487.2687.6678.32

Compile Bench

Test: Compile

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ80160240320400SE +/- 0.55, N = 3SE +/- 0.21, N = 3SE +/- 0.98, N = 3SE +/- 0.87, N = 3SE +/- 1.22, N = 3SE +/- 0.67, N = 3SE +/- 1.24, N = 3SE +/- 0.61, N = 3SE +/- 1.45, N = 3SE +/- 1.85, N = 3105.88106.34104.89379.63106.70105.64104.86104.77102.7395.42

Compile Bench

Test: Initial Create

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ4080120160200SE +/- 0.49, N = 3SE +/- 0.22, N = 3SE +/- 1.34, N = 3SE +/- 3.21, N = 3SE +/- 1.35, N = 3SE +/- 5.02, N = 3SE +/- 2.26, N = 3SE +/- 0.70, N = 3SE +/- 4.10, N = 3SE +/- 5.26, N = 358.8153.9551.92171.5798.4594.7798.9487.2689.4374.78

Apache Benchmark

Static Web Page Serving

BtrfsEXT4XFSOpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.2.21Static Web Page ServingLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ6K12K18K24K30KSE +/- 102.51, N = 3SE +/- 59.43, N = 3SE +/- 83.92, N = 3SE +/- 516.29, N = 3SE +/- 231.67, N = 3SE +/- 354.48, N = 3SE +/- 84.10, N = 3SE +/- 60.20, N = 3SE +/- 99.43, N = 3SE +/- 77.92, N = 319169.1418619.5519679.5829171.2320805.2019441.7520564.7719672.2218854.7519964.001. (CC) gcc options: -O2 -pthread -lm -lrt -lcrypt -lpthread -ldl


Phoronix Test Suite v10.8.4