FS transaction performance comparison, cheapo Kingston 120GB SSD

All filesystems were tested on the same partition with offset 1MiB and size 4GiB, mounted with noatime and discard, except tmpfs. The two btrfs tests additionally tries out autodefrag vs nodatacow, in an attempt to isolate the impact of copy-on-write. I really had hoped to run the sqlite benchmark too, but PTS said it «failed to produce a result». More overwhelming than these results, is a real sqlite workload I have that takes tens of minutes on a rotating hdd (and slows down the machine) or a split second on tmpfs.

HTML result view exported from: https://openbenchmarking.org/result/1603157-GA-1509207BE62.

FS transaction performance comparison, cheapo Kingston 120GB SSDProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLFile-SystemScreen ResolutionCompilertmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkkAMD A6-3670 APU @ 2.70GHz (4 Cores)ASUS F1A75-V PROAMD Family 12h Root Complex8192MB120GB KINGSTON SV300S3 + 3001GB Western Digital WD30EFRX-68E + 128GB Crucial_CT128MX1 + 80GB Western Digital WD800BB-00FJ + 160GB Western Digital WD1600JB-00GAMD Radeon HD 6530D 512MBAMD BeaverCreek HDMI AudioCOMPAQ 1825Realtek RTL8111/8168/8411openSUSE 201509094.1.6-3-desktop (x86_64)KDE Frameworks 5X Server 1.17.2radeon 7.5.03.3 Mesa 10.6.5 Gallium 0.4tmpfs1280x1024f2fsxfsext4btrfsIntel Core i7 740Q @ 1.73GHz (8 Cores)ASUS K52JT v1.0Intel Core DMI500GB Western Digital WD5000BEVT-8ASUS AMD Radeon HD 6370M/7370M 1024MBConexant CX20585JMicron JMC250 PCI Gigabit + Qualcomm Atheros AR9285 WirelessArch rolling4.4.5-1-zen (x86_64)GNOME Shell 3.18.43.3 Mesa 11.3.0-devel (git-7a2333e) Gallium 0.4GCC 5.3.0 + Clang 3.9.0 (SVN 263445) + LLVM 3.9.0svn1366x768OpenBenchmarking.orgCompiler Details- tmpfs, f2fs, xfs, ext4, btrfs autodefrag, btrfs nodatacow: --build=x86_64-suse-linux --disable-libgcj --disable-libssp --disable-libstdcxx-pch --disable-libvtv --disable-plugin --enable-__cxa_atexit --enable-checking=release --enable-languages=c,c++,objc,fortran,obj-c++,java,ada,go --enable-libmpx --enable-libstdcxx-allocator=new --enable-linux-futex --enable-multilib --enable-ssp --enable-version-specific-runtime-libs --host=x86_64-suse-linux --mandir=/usr/share/man --with-arch-32=i586 --with-slibdir=/lib64 --with-tune=generic --without-system-libunwind Processor Details- tmpfs: Scaling Governor: acpi-cpufreq ondemand- f2fs: Scaling Governor: acpi-cpufreq ondemand- xfs: Scaling Governor: acpi-cpufreq ondemand- ext4: Scaling Governor: acpi-cpufreq ondemand- btrfs autodefrag: Scaling Governor: acpi-cpufreq ondemand- btrfs nodatacow: Scaling Governor: acpi-cpufreq ondemand- kk: Scaling Governor: acpi-cpufreq performanceSystem Details- tmpfs, f2fs, xfs, ext4, btrfs autodefrag, btrfs nodatacow: Disk Scheduler: DEADLINE.Disk Scheduler Details- tmpfs: DEADLINEDisk Details- f2fs: DEADLINE / acl,active_logs=6,background_gc=on,discard,inline_data,noatime,rw,user_xattr- xfs: DEADLINE / attr2,discard,inode64,noatime,noquota,rw- ext4: DEADLINE / data=ordered,discard,noatime,rw- btrfs autodefrag: DEADLINE / autodefrag,discard,noatime,rw,space_cache,ssd- btrfs nodatacow: DEADLINE / discard,noatime,nodatacow,nodatasum,rw,space_cache,ssd- kk: BFQ / autodefrag,compress-force=lzo,relatime,rw,space_cache,subvol=/,subvolid=5Kernel Details- kk: libahci.ignore_sss=1

FS transaction performance comparison, cheapo Kingston 120GB SSDiozone: 4Kb - 512MB - Read Performanceiozone: 4Kb - 512MB - Write Performancepostmark: Disk Transaction Performancepgbench: On-Disk - Single Thread - Read Writetmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkk3020.861860.073750215.503098.21343.612798195.922941.04285.542435185.263060.14337.852517196.353138.02362.02444167.382994.46363.68623184.913293.86179.08248310.08OpenBenchmarking.org

IOzone

Record Size: 4Kb - File Size: 512MB - Disk Test: Read Performance

OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 512MB - Disk Test: Read Performancetmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkk7001400210028003500SE +/- 7.18, N = 3SE +/- 25.67, N = 3SE +/- 29.18, N = 3SE +/- 24.45, N = 3SE +/- 7.82, N = 3SE +/- 8.67, N = 3SE +/- 0.45, N = 33020.863098.212941.043060.143138.022994.463293.861. (CC) gcc options: -O3

IOzone

Record Size: 4Kb - File Size: 512MB - Disk Test: Write Performance

OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 512MB - Disk Test: Write Performancetmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkk400800120016002000SE +/- 8.92, N = 3SE +/- 0.45, N = 3SE +/- 0.66, N = 3SE +/- 0.71, N = 3SE +/- 0.44, N = 3SE +/- 0.25, N = 3SE +/- 5.01, N = 61860.07343.61285.54337.85362.02363.68179.081. (CC) gcc options: -O3

PostMark

Disk Transaction Performance

OpenBenchmarking.orgTPS, More Is BetterPostMark 1.51Disk Transaction Performancetmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkk8001600240032004000SE +/- 18.67, N = 3SE +/- 10.33, N = 3SE +/- 7.67, N = 3SE +/- 22.30, N = 3SE +/- 19.81, N = 6SE +/- 110.92, N = 6SE +/- 8.33, N = 3375027982435251744462324831. (CC) gcc options: -O3

PostgreSQL pgbench

Scaling: On-Disk - Test: Single Thread - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: On-Disk - Test: Single Thread - Mode: Read Writetmpfsf2fsxfsext4btrfs autodefragbtrfs nodatacowkk50100150200250SE +/- 0.10, N = 3SE +/- 1.01, N = 3SE +/- 1.66, N = 3SE +/- 0.83, N = 3SE +/- 0.69, N = 2SE +/- 0.21, N = 3SE +/- 0.02, N = 3215.50195.92185.26196.35167.38184.9110.081. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm


Phoronix Test Suite v10.8.4