Bcachefs File-System Benchmarks

Bcachefs file-system benchmarks by Michael Larabel for a future article.

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 2311274-NE-SSDSTORAG18
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
Allow Limiting Results To Certain Suite(s)

Statistics

Show Overall Harmonic Mean(s)
Show Overall Geometric Mean
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
Toggle/Hide
Result
Result
Identifier
Performance Per
Dollar
Date
Run
  Test
  Duration
Bcachefs
November 26 2023
  4 Hours, 36 Minutes
Btrfs
November 26 2023
  2 Hours, 38 Minutes
EXT4
November 26 2023
  3 Hours, 47 Minutes
XFS
November 27 2023
  2 Hours, 12 Minutes
F2FS
November 27 2023
  2 Hours, 49 Minutes
Invert Behavior (Only Show Selected Data)
  3 Hours, 12 Minutes

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):


Bcachefs File-System BenchmarksOpenBenchmarking.orgPhoronix Test SuiteAMD Ryzen Threadripper 7980X 64-Cores @ 8.21GHz (64 Cores / 128 Threads)ASUS Pro WS TRX50-SAGE WIFI (0217 BIOS)AMD Device 14a4128GB2000GB Corsair MP700 PRO + 1000GB Western Digital WDS100T1X0E-00AFY0AMD Radeon RX 7900 XT 20GB (2025/1249MHz)Realtek ALC1220DELL U2723QEAquantia Device 04c0 + Intel I226-LM + MEDIATEK MT7922 802.11ax PCIUbuntu 23.106.7.0-060700rc2daily20231126-generic (x86_64)GNOME Shell 45.0X Server 1.21.1.7 + Wayland4.6 Mesa 23.2.1-1ubuntu3 (LLVM 15.0.7 DRM 3.56)GCC 13.2.0BcacheFSbtrfsext4xfsf2fs3840x2160ProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerOpenGLCompilerFile-SystemsScreen ResolutionBcachefs File-System Benchmarks PerformanceSystem Logs- Transparent Huge Pages: madvise- --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-bootstrap --enable-cet --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --enable-libphobos-checking=release --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-link-serialization=2 --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-defaulted --enable-offload-targets=nvptx-none=/build/gcc-13-XYspKM/gcc-13-13.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-XYspKM/gcc-13-13.2.0/debian/tmp-gcn/usr --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-build-config=bootstrap-lto-lean --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - Bcachefs: NONE / fix_errors=yes,nojournal_transaction_names,relatime,rw / Block Size: 512- Btrfs: NONE / discard=async,relatime,rw,space_cache=v2,ssd,subvol=/,subvolid=5 / Block Size: 4096- EXT4: NONE / relatime,rw / Block Size: 4096- XFS: NONE / attr2,inode64,logbsize=32k,logbufs=8,noquota,relatime,rw / Block Size: 4096- F2FS: NONE / acl,active_logs=6,alloc_mode=default,background_gc=on,barrier,checkpoint_merge,discard,discard_unit=block,errors=continue,extent_cache,flush_merge,fsync_mode=posix,inline_data,inline_dentry,inline_xattr,lazytime,memory=normal,mode=adaptive,no_heap,nogc_merge,relatime,rw,user_xattr / Block Size: 4096 - Scaling Governor: amd-pstate-epp powersave (EPP: balance_performance) - CPU Microcode: 0xa108105- gather_data_sampling: Not affected + itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + mmio_stale_data: Not affected + retbleed: Not affected + spec_rstack_overflow: Mitigation of Safe RET + spec_store_bypass: Mitigation of SSB disabled via prctl + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Enhanced / Automatic IBRS IBPB: conditional STIBP: always-on RSB filling PBRSB-eIBRS: Not affected + srbds: Not affected + tsx_async_abort: Not affected

BcachefsBtrfsEXT4XFSF2FSLogarithmic Result OverviewPhoronix Test SuitePostgreSQLFlexible IO TesterDbenchCockroachDBSQLite

Bcachefs File-System Benchmarkssqlite: 2sqlite: 4sqlite: 8sqlite: 16fio: Rand Read - IO_uring - No - Yes - 4KB - 32 - Default Test Directoryfio: Rand Write - IO_uring - No - Yes - 4KB - 1 - Default Test Directoryfio: Seq Read - IO_uring - No - Yes - 2MB - 1 - Default Test Directoryfio: Seq Read - IO_uring - No - Yes - 2MB - 32 - Default Test Directoryfio: Seq Write - IO_uring - No - Yes - 2MB - 1 - Default Test Directorydbench: 12cockroach: KV, 50% Reads - 128pgbench: 1000 - 1000 - Read Writepgbench: 1000 - 1000 - Read Write - Average LatencyBcachefsBtrfsEXT4XFSF2FS51.59352.81257.21466.873158110682010331.1610111.731779.41747.40648184.16558157.70169.93171.19973.37978.2244925667521111396.0210720.094929.781582.9445262.33028733.04044.14966.35695.298150.241157367722181911448.2110798.651631.191611.9970152.83270131.02034.05952.83587.274154.650156572022324711483.7510883.3111010.69808.24470505.55138119.97641.21757.77284.342104.875156876722172811387.5010432.6910995.642039.7984252.62748836.535OpenBenchmarking.org

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 with a variable number of concurrent repetitions -- up to the maximum number of CPU threads available. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 2XFSF2FSEXT4BcachefsBtrfs1632486480SE +/- 0.27, N = 3SE +/- 0.47, N = 3SE +/- 1.23, N = 12SE +/- 0.53, N = 3SE +/- 0.40, N = 334.0641.2244.1551.5969.931. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 4BcachefsXFSF2FSEXT4Btrfs1632486480SE +/- 0.33, N = 3SE +/- 0.17, N = 3SE +/- 0.66, N = 3SE +/- 0.60, N = 3SE +/- 0.16, N = 352.8152.8457.7766.3671.201. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 8BcachefsBtrfsF2FSXFSEXT420406080100SE +/- 0.51, N = 3SE +/- 0.30, N = 3SE +/- 0.67, N = 9SE +/- 0.25, N = 3SE +/- 0.06, N = 357.2173.3884.3487.2795.301. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 16BcachefsBtrfsF2FSEXT4XFS306090120150SE +/- 0.12, N = 3SE +/- 0.89, N = 4SE +/- 1.37, N = 3SE +/- 0.30, N = 3SE +/- 0.38, N = 366.8778.22104.88150.24154.651. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

Flexible IO Tester

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.35Type: Random Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 32 - Disk Target: Default Test DirectoryEXT4F2FSXFSBtrfsBcachefs300K600K900K1200K1500KSE +/- 912.07, N = 3SE +/- 3142.11, N = 3SE +/- 3432.72, N = 3SE +/- 3682.01, N = 3SE +/- 1208.88, N = 3157367715687671565720492566158110MIN: 1571879.93 / MAX: 1574845.88MIN: 1563469.75 / MAX: 1574343.53MIN: 1559531.51 / MAX: 1571388.76MIN: 487738.18 / MAX: 499795.261. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.35Type: Random Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 1 - Disk Target: Default Test DirectoryXFSEXT4F2FSBtrfsBcachefs50K100K150K200K250KSE +/- 1470.61, N = 3SE +/- 934.79, N = 3SE +/- 2479.24, N = 3SE +/- 220.39, N = 3SE +/- 66.80, N = 15223247221819221728752116820MIN: 221503.62 / MAX: 226169.77MIN: 220427.04 / MAX: 223595.96MIN: 217209.02 / MAX: 225754.9MIN: 74826.59 / MAX: 75589.961. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgMiB/s, More Is BetterFlexible IO Tester 3.35Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test DirectoryXFSEXT4BtrfsF2FSBcachefs2K4K6K8K10KSE +/- 3.31, N = 3SE +/- 5.93, N = 3SE +/- 2.04, N = 3SE +/- 8.08, N = 3SE +/- 76.79, N = 311483.7511448.2111396.0211387.5010331.16MIN: 11477.88 / MAX: 11489.35MIN: 11439.15 / MAX: 11459.36MIN: 11393.15 / MAX: 11399.97MIN: 11373.02 / MAX: 11400.95MIN: 10187.06 / MAX: 10449.231. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgMiB/s, More Is BetterFlexible IO Tester 3.35Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 32 - Disk Target: Default Test DirectoryXFSEXT4BtrfsF2FSBcachefs2K4K6K8K10KSE +/- 64.98, N = 3SE +/- 58.12, N = 3SE +/- 44.48, N = 3SE +/- 91.69, N = 8SE +/- 53.06, N = 310883.3110798.6510720.0910432.6910111.73MIN: 10754.18 / MAX: 10960.58MIN: 10696.74 / MAX: 10898.04MIN: 10631.46 / MAX: 10770.97MIN: 10119.85 / MAX: 10855.14MIN: 10037.07 / MAX: 10214.381. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgMiB/s, More Is BetterFlexible IO Tester 3.35Type: Sequential Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test DirectoryXFSF2FSBtrfsBcachefsEXT42K4K6K8K10KSE +/- 5.97, N = 3SE +/- 3.58, N = 3SE +/- 44.22, N = 3SE +/- 100.08, N = 15SE +/- 60.81, N = 311010.6910995.644929.781779.411631.19MIN: 10999 / MAX: 11018.62MIN: 10989.72 / MAX: 11002.08MIN: 4841.36 / MAX: 4975.3MIN: 1385.17 / MAX: 3033.5MIN: 1043.13 / MAX: 925220.581. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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: 12F2FSEXT4BtrfsXFSBcachefs400800120016002000SE +/- 1.03, N = 3SE +/- 18.01, N = 9SE +/- 9.48, N = 3SE +/- 0.63, N = 3SE +/- 16.80, N = 92039.791611.991582.94808.24747.411. (CC) gcc options: -lpopt -O2

CockroachDB

CockroachDB is a cloud-native, distributed SQL database for data intensive applications. This test profile uses a server-less CockroachDB configuration to test various Coackroach workloads on the local host with a single node. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgops/s, More Is BetterCockroachDB 22.2Workload: KV, 50% Reads - Concurrency: 128F2FSXFSEXT4BcachefsBtrfs20K40K60K80K100KSE +/- 173.63, N = 3SE +/- 177.77, N = 3SE +/- 267.13, N = 3SE +/- 2640.04, N = 12SE +/- 198.41, N = 384252.670505.570152.848184.145262.3

PostgreSQL

This is a benchmark of PostgreSQL using the integrated pgbench for facilitating the database benchmarks. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL 16Scaling Factor: 1000 - Clients: 1000 - Mode: Read WriteXFSEXT4BtrfsF2FSBcachefs11K22K33K44K55KSE +/- 3124.70, N = 9SE +/- 1417.85, N = 9SE +/- 231.44, N = 12SE +/- 570.95, N = 12SE +/- 393.97, N = 125138132701302872748865581. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm

OpenBenchmarking.orgms, Fewer Is BetterPostgreSQL 16Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write - Average LatencyXFSEXT4BtrfsF2FSBcachefs306090120150SE +/- 1.06, N = 9SE +/- 1.27, N = 9SE +/- 0.26, N = 12SE +/- 0.68, N = 12SE +/- 7.94, N = 1219.9831.0233.0436.54157.701. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm