Linux 4.11 F2FS vs. Btrfs Multi-Disk Testing

F2FS multi disk tests on Toshiba TR-150 multiple SSDs with Linux 4.11 kernel and latest f2fs-tools. Tests for a future article on Phoronix.com.

HTML result view exported from: https://openbenchmarking.org/result/1704236-TR-F2FSMULTI78&gru&sro.

Linux 4.11 F2FS vs. Btrfs Multi-Disk TestingProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLVulkanCompilerFile-SystemScreen ResolutionF2FS - Single DiskF2FS - Two DisksF2FS - Three DisksF2FS - Four DisksBtrfs - Single DiskBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID10Btrfs - 4 Disk RAID1Intel Core i7-6800K @ 3.80GHz (12 Cores)MSI X99A WORKSTATION (MS-7A54) v1.0Intel Xeon E7 v4/Xeon16384MB120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150LLVMpipeRealtek ALC1150ASUS PB278Intel ConnectionUbuntu 17.044.11.0-999-generic (x86_64) 20170418Unity 7.5.0X Server 1.19.3nouveau 1.0.143.3 Mesa 17.0.3 Gallium 0.4 (LLVM 4.0 256 bits)1.0.42GCC 6.3.0 20170406f2fs2560x1440btrfsOpenBenchmarking.orgEnvironment Details- LIBGL_ALWAYS_SOFTWARE=1Compiler Details- --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-target-system-zlib --with-tune=generic -v Disk Details- F2FS - Single Disk: CFQ / acl,active_logs=6,background_gc=on,extent_cache,flush_merge,inline_data,inline_dentry,inline_xattr,lazytime,mode=adaptive,relatime,rw,user_xattr- F2FS - Two Disks: CFQ / acl,active_logs=6,background_gc=on,extent_cache,flush_merge,inline_data,inline_dentry,inline_xattr,lazytime,mode=adaptive,relatime,rw,user_xattr- F2FS - Three Disks: CFQ / acl,active_logs=6,background_gc=on,extent_cache,flush_merge,inline_data,inline_dentry,inline_xattr,lazytime,mode=adaptive,relatime,rw,user_xattr- F2FS - Four Disks: CFQ / acl,active_logs=6,background_gc=on,extent_cache,flush_merge,inline_data,inline_dentry,inline_xattr,lazytime,mode=adaptive,relatime,rw,user_xattr- Btrfs - Single Disk: CFQ / relatime,rw,space_cache,ssd,subvol=/,subvolid=5- Btrfs - 2 Disk RAID0: CFQ / relatime,rw,space_cache,ssd,subvol=/,subvolid=5 / RAID0- Btrfs - 4 Disk RAID0: CFQ / relatime,rw,space_cache,ssd,subvol=/,subvolid=5 / RAID0- Btrfs - 4 Disk RAID10: CFQ / relatime,rw,space_cache,ssd,subvol=/,subvolid=5 / RAID10- Btrfs - 4 Disk RAID1: CFQ / relatime,rw,space_cache,ssd,subvol=/,subvolid=5 / RAID1Processor Details- Scaling Governor: intel_pstate powersaveSystem Details- Python 2.7.13.

Linux 4.11 F2FS vs. Btrfs Multi-Disk Testingfs-mark: 1000 Files, 1MB Sizefs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizeblogbench: Writecompilebench: Initial Createpgbench: On-Disk - Normal Load - Read Writesqlite: Default Test DirectoryF2FS - Single DiskF2FS - Two DisksF2FS - Three DisksF2FS - Four DisksBtrfs - Single DiskBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID10Btrfs - 4 Disk RAID172.5252.6745.974249426.391281.8639.7377.1247.8744.974575409.721416.7532.1773.9748.0044.555144431.91577.4531.1965.7747.0044.185070480.081622.9031.5259.5050.2046.284954148.301095.0689.60129.9584.2877.886651275.551524.5789.30169.07134.02116.577457294.412205.7284.3988.1772.5266.876269237.221435.8596.7275.5361.6856.675942240.611443.9190.11OpenBenchmarking.org

FS-Mark

Test: 1000 Files, 1MB Size

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks4080120160200SE +/- 19.90, N = 6SE +/- 23.94, N = 6SE +/- 15.72, N = 6SE +/- 14.83, N = 6SE +/- 5.93, N = 6SE +/- 13.51, N = 6SE +/- 16.03, N = 6SE +/- 18.21, N = 6SE +/- 19.95, N = 6129.95169.0775.5388.1759.5065.7772.5273.9777.121. (CC) gcc options: -static

FS-Mark

Test: 5000 Files, 1MB Size, 4 Threads

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 5000 Files, 1MB Size, 4 ThreadsBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks306090120150SE +/- 1.83, N = 6SE +/- 6.52, N = 6SE +/- 2.13, N = 6SE +/- 1.91, N = 6SE +/- 0.26, N = 3SE +/- 1.22, N = 6SE +/- 0.27, N = 3SE +/- 0.40, N = 3SE +/- 0.58, N = 384.28134.0261.6872.5250.2047.0052.6748.0047.871. (CC) gcc options: -static

FS-Mark

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

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks306090120150SE +/- 2.77, N = 6SE +/- 9.37, N = 6SE +/- 7.02, N = 6SE +/- 5.80, N = 6SE +/- 1.69, N = 6SE +/- 0.73, N = 6SE +/- 0.70, N = 6SE +/- 0.67, N = 6SE +/- 0.62, N = 677.88116.5756.6766.8746.2844.1845.9744.5544.971. (CC) gcc options: -static

BlogBench

Test: Write

OpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: WriteBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks16003200480064008000SE +/- 81.26, N = 3SE +/- 115.85, N = 3SE +/- 122.86, N = 3SE +/- 60.92, N = 3SE +/- 94.11, N = 3SE +/- 38.37, N = 3SE +/- 240.01, N = 6SE +/- 65.60, N = 56651745759426269495450704249514445751. (CC) gcc options: -O2 -pthread

Compile Bench

Test: Initial Create

OpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks100200300400500SE +/- 1.18, N = 3SE +/- 7.08, N = 6SE +/- 7.83, N = 6SE +/- 11.35, N = 6SE +/- 24.81, N = 6SE +/- 28.20, N = 6SE +/- 34.60, N = 6SE +/- 24.26, N = 6SE +/- 23.46, N = 6275.55294.41240.61237.22148.30480.08426.39431.91409.72

PostgreSQL pgbench

Scaling: On-Disk - Test: Normal Load - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: On-Disk - Test: Normal Load - Mode: Read WriteBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks50010001500200025001524.572205.721443.911435.851095.061622.901281.86577.451416.751. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

SQLite

Test Target: Default Test Directory

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryBtrfs - 2 Disk RAID0Btrfs - 4 Disk RAID0Btrfs - 4 Disk RAID1Btrfs - 4 Disk RAID10Btrfs - Single DiskF2FS - Four DisksF2FS - Single DiskF2FS - Three DisksF2FS - Two Disks20406080100SE +/- 1.46, N = 6SE +/- 1.56, N = 6SE +/- 1.81, N = 6SE +/- 1.50, N = 6SE +/- 1.38, N = 6SE +/- 0.16, N = 3SE +/- 0.39, N = 3SE +/- 0.56, N = 3SE +/- 0.51, N = 389.3084.3990.1196.7289.6031.5239.7331.1932.171. (CC) gcc options: -O2 -ldl -lpthread


Phoronix Test Suite v10.8.4