Linux 4.7 - EXT4 vs. F2FS vs. Btrfs vs. XFS vs. NTFS

Linux file-system benchmarks by Michael Larabel for a future article on Phoronix.

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 1608041-LO-LINUX44BT99
Jump To Table - Results

View

Do Not Show Noisy Results
Do Not Show Results With Incomplete Data
Do Not Show Results With Little Change/Spread
List Notable Results
Show Result Confidence Charts

Limit displaying results to tests within:

CPU Massive 2 Tests
Database Test Suite 2 Tests
Disk Test Suite 4 Tests
Server 3 Tests

Statistics

Show Overall Harmonic Mean(s)
Show Overall Geometric Mean
Show Geometric Means Per-Suite/Category
Show Wins / Losses Counts (Pie Chart)
Normalize Results
Remove Outliers Before Calculating Averages

Graph Settings

Force Line Graphs Where Applicable
Convert To Scalar Where Applicable
Prefer Vertical Bar Graphs

Multi-Way Comparison

Condense Multi-Option Tests Into Single Result Graphs

Table

Show Detailed System Result Table

Run Management

Highlight
Result
Hide
Result
Result
Identifier
View Logs
Performance Per
Dollar
Date
Run
  Test
  Duration
Btrfs
August 02 2016
 
EXT4
August 03 2016
 
F2FS
August 03 2016
 
XFS
August 03 2016
 
NTFS
August 04 2016
 
Invert Hiding All Results Option
 

Only show results where is faster than
Only show results matching title/arguments (delimit multiple options with a comma):
Do not show results matching title/arguments (delimit multiple options with a comma):


Linux 4.7 - EXT4 vs. F2FS vs. Btrfs vs. XFS vs. NTFSOpenBenchmarking.orgPhoronix Test SuiteIntel Xeon E3-1280 v5 @ 4.00GHz (8 Cores)MSI C236A WORKSTATION (MS-7998) v1.0Intel Skylake16384MBSamsung SSD 950 PRO 256GBLLVMpipeRealtek ALC1150Intel ConnectionUbuntu 16.104.7.0-040700-generic (x86_64)Unity 7.5.0X Server 1.18.4nouveau 1.0.123.3 Mesa 12.0.1 Gallium 0.4GCC 5.4.0 20160609btrfsext4f2fsxfsfuseblk1024x768ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemsScreen ResolutionLinux 4.7 - EXT4 Vs. F2FS Vs. Btrfs Vs. XFS Vs. NTFS BenchmarksSystem Logs- LIBGL_ALWAYS_SOFTWARE=1- --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 --enable-plugin --enable-shared --enable-threads=posix --host=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-tune=generic -v - Scaling Governor: intel_pstate performance- Btrfs: relatime,rw,space_cache,ssd,subvol=/,subvolid=5- EXT4: data=ordered,relatime,rw- F2FS: acl,active_logs=6,background_gc=on,extent_cache,inline_data,relatime,rw,user_xattr- XFS: attr2,inode64,noquota,relatime,rw- NTFS: allow_other,blksize=4096,group_id=0,relatime,rw,user_id=0

BtrfsEXT4F2FSXFSNTFSLogarithmic Result OverviewPhoronix Test SuiteBlogBenchFlexible IO TesterBlogBenchSQLiteFS-MarkDbenchFS-MarkFS-MarkFlexible IO TesterFlexible IO TesterFlexible IO TesterReadSeq Write - Libaio - No - Yes - 4KB - IOPSWriteD.T.D5.F.1.S.4.T14.F.3.S.D.1.S1.F.1.SSeq Read - Libaio - No - Yes - 4KB - IOPSRand Read - Libaio - No - Yes - 4KB - IOPSRand Write - Libaio - No - Yes - 4KB - IOPS

Linux 4.7 - EXT4 vs. F2FS vs. Btrfs vs. XFS vs. NTFSblogbench: Readblogbench: Writedbench: 1fio: Rand Read - Libaio - No - Yes - 4KB - Default Test Directory - IOPSfio: Rand Write - Libaio - No - Yes - 4KB - Default Test Directory - IOPSfio: Seq Read - Libaio - No - Yes - 4KB - Default Test Directory - IOPSfio: Seq Write - Libaio - No - Yes - 4KB - Default Test Directory - IOPSfs-mark: 1000 Files, 1MB Sizefs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizepgbench: On-Disk - Normal Load - Read Writesqlite: Default Test DirectoryBtrfsEXT4F2FSXFSNTFS1721568914183.051926257339627034763910142.33280.67141.932227.41132.585500311646184.9421552080946283973231656142.23320.80143.533713.8765.9422952804173187.1819427481407284781233585267.23291.87267.973187.5976.282188248620390.3919416681350285041232590158.07284.07144.632788.4362.305160359391.171375666313814076663680127.00119.13124.3347.45OpenBenchmarking.org

BlogBench

OpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: ReadNTFSEXT4BtrfsXFSF2FS500K1000K1500K2000K2500KSE +/- 786.80, N = 4SE +/- 11102.40, N = 6SE +/- 20785.44, N = 3SE +/- 10336.76, N = 3SE +/- 12704.41, N = 3516035500311721568218824822952801. (CC) gcc options: -O2 -pthread

OpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: WriteNTFSF2FSXFSBtrfsEXT44K8K12K16K20KSE +/- 14.38, N = 3SE +/- 36.04, N = 3SE +/- 10.39, N = 3SE +/- 135.08, N = 3SE +/- 1662.76, N = 3593417362039141164611. (CC) gcc options: -O2 -pthread

Dbench

Dbench is a benchmark designed by the Samba project as a free alternative to netbench, but dbench contains only file-system calls for testing the disk performance. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 1BtrfsEXT4XFSNTFSF2FS4080120160200SE +/- 0.30, N = 3SE +/- 0.07, N = 3SE +/- 0.15, N = 3SE +/- 0.19, N = 3SE +/- 3.57, N = 483.0584.9490.3991.17187.181. (CC) gcc options: -lpopt -O2

Flexible IO Tester

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Random Read - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory - Result: IOPSNTFSBtrfsXFSF2FSEXT450K100K150K200K250KSE +/- 781.27, N = 3SE +/- 16.17, N = 3SE +/- 17.90, N = 3SE +/- 109.86, N = 3SE +/- 65.08, N = 31375661926251941661942742155201. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lm -lpthread -ldl

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory - Result: IOPSNTFSBtrfsEXT4XFSF2FS20K40K60K80K100KSE +/- 831.96, N = 3SE +/- 474.84, N = 3SE +/- 58.46, N = 3SE +/- 26.86, N = 3SE +/- 95.69, N = 363138733968094681350814071. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lm -lpthread -ldl

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Read - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory - Result: IOPSNTFSBtrfsEXT4F2FSXFS60K120K180K240K300KSE +/- 329.89, N = 3SE +/- 1073.84, N = 3SE +/- 43.50, N = 3SE +/- 73.04, N = 3SE +/- 51.39, N = 31407662703472839732847812850411. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lm -lpthread -ldl

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory - Result: IOPSNTFSBtrfsEXT4XFSF2FS50K100K150K200K250KSE +/- 707.35, N = 3SE +/- 1006.05, N = 3SE +/- 49.24, N = 3SE +/- 91.25, N = 3SE +/- 112.34, N = 363680639102316562325902335851. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lm -lpthread -ldl

FS-Mark

FS_Mark is designed to test a system's file-system performance. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeNTFSEXT4BtrfsXFSF2FS60120180240300SE +/- 0.70, N = 3SE +/- 0.38, N = 3SE +/- 0.18, N = 3SE +/- 0.90, N = 3SE +/- 0.58, N = 3127.00142.23142.33158.07267.231. (CC) gcc options: -static

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 5000 Files, 1MB Size, 4 ThreadsNTFSBtrfsXFSF2FSEXT470140210280350SE +/- 0.41, N = 3SE +/- 0.35, N = 3SE +/- 1.27, N = 3SE +/- 3.93, N = 3SE +/- 2.01, N = 3119.13280.67284.07291.87320.801. (CC) gcc options: -static

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeNTFSBtrfsEXT4XFSF2FS60120180240300SE +/- 0.92, N = 3SE +/- 0.18, N = 3SE +/- 0.58, N = 3SE +/- 4.01, N = 6SE +/- 0.24, N = 3124.33141.93143.53144.63267.971. (CC) gcc options: -static

PostgreSQL pgbench

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: On-Disk - Test: Normal Load - Mode: Read WriteBtrfsXFSF2FSEXT48001600240032004000SE +/- 5.08, N = 3SE +/- 494.50, N = 6SE +/- 9.54, N = 3SE +/- 26.02, N = 32227.412788.433187.593713.871. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

SQLite

This is a simple benchmark of SQLite. At present this test profile just measures the time to perform a pre-defined number of insertions on an indexed database. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryBtrfsF2FSEXT4XFSNTFS306090120150SE +/- 0.13, N = 3SE +/- 0.06, N = 3SE +/- 0.05, N = 3SE +/- 0.08, N = 3SE +/- 0.01, N = 3132.5876.2865.9462.3047.451. (CC) gcc options: -O2 -ldl -lpthread