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/1509207-BE-CHEAPOKIN75&grw&sor .
FS transaction performance comparison, cheapo Kingston 120GB SSD Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL File-System Screen Resolution tmpfs f2fs xfs ext4 btrfs autodefrag btrfs nodatacow AMD A6-3670 APU @ 2.70GHz (4 Cores) ASUS F1A75-V PRO AMD Family 12h Root Complex 8192MB 120GB KINGSTON SV300S3 + 3001GB Western Digital WD30EFRX-68E + 128GB Crucial_CT128MX1 + 80GB Western Digital WD800BB-00FJ + 160GB Western Digital WD1600JB-00G AMD Radeon HD 6530D 512MB AMD BeaverCreek HDMI Audio COMPAQ 1825 Realtek RTL8111/8168/8411 openSUSE 20150909 4.1.6-3-desktop (x86_64) KDE Frameworks 5 X Server 1.17.2 radeon 7.5.0 3.3 Mesa 10.6.5 Gallium 0.4 tmpfs 1280x1024 f2fs xfs ext4 btrfs OpenBenchmarking.org Compiler Details - --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 - Scaling Governor: acpi-cpufreq ondemand System Details - Disk Scheduler: DEADLINE. Disk Scheduler Details - tmpfs: DEADLINE Disk 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
FS transaction performance comparison, cheapo Kingston 120GB SSD iozone: 4Kb - 512MB - Read Performance iozone: 4Kb - 512MB - Write Performance postmark: Disk Transaction Performance pgbench: On-Disk - Single Thread - Read Write tmpfs f2fs xfs ext4 btrfs autodefrag btrfs nodatacow 3020.86 1860.07 3750 215.50 3098.21 343.61 2798 195.92 2941.04 285.54 2435 185.26 3060.14 337.85 2517 196.35 3138.02 362.02 444 167.38 2994.46 363.68 623 184.91 OpenBenchmarking.org
IOzone Record Size: 4Kb - File Size: 512MB - Disk Test: Read Performance OpenBenchmarking.org MB/s, More Is Better IOzone 3.405 Record Size: 4Kb - File Size: 512MB - Disk Test: Read Performance btrfs autodefrag f2fs ext4 tmpfs btrfs nodatacow xfs 700 1400 2100 2800 3500 SE +/- 7.82, N = 3 SE +/- 25.67, N = 3 SE +/- 24.45, N = 3 SE +/- 7.18, N = 3 SE +/- 8.67, N = 3 SE +/- 29.18, N = 3 3138.02 3098.21 3060.14 3020.86 2994.46 2941.04 1. (CC) gcc options: -O3
IOzone Record Size: 4Kb - File Size: 512MB - Disk Test: Write Performance OpenBenchmarking.org MB/s, More Is Better IOzone 3.405 Record Size: 4Kb - File Size: 512MB - Disk Test: Write Performance tmpfs btrfs nodatacow btrfs autodefrag f2fs ext4 xfs 400 800 1200 1600 2000 SE +/- 8.92, N = 3 SE +/- 0.25, N = 3 SE +/- 0.44, N = 3 SE +/- 0.45, N = 3 SE +/- 0.71, N = 3 SE +/- 0.66, N = 3 1860.07 363.68 362.02 343.61 337.85 285.54 1. (CC) gcc options: -O3
PostMark Disk Transaction Performance OpenBenchmarking.org TPS, More Is Better PostMark 1.51 Disk Transaction Performance tmpfs f2fs ext4 xfs btrfs nodatacow btrfs autodefrag 800 1600 2400 3200 4000 SE +/- 18.67, N = 3 SE +/- 10.33, N = 3 SE +/- 22.30, N = 3 SE +/- 7.67, N = 3 SE +/- 110.92, N = 6 SE +/- 19.81, N = 6 3750 2798 2517 2435 623 444 1. (CC) gcc options: -O3
PostgreSQL pgbench Scaling: On-Disk - Test: Single Thread - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: On-Disk - Test: Single Thread - Mode: Read Write tmpfs ext4 f2fs xfs btrfs nodatacow btrfs autodefrag 50 100 150 200 250 SE +/- 0.10, N = 3 SE +/- 0.83, N = 3 SE +/- 1.01, N = 3 SE +/- 1.66, N = 3 SE +/- 0.21, N = 3 SE +/- 0.69, N = 2 215.50 196.35 195.92 185.26 184.91 167.38 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Phoronix Test Suite v10.8.5