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

Limit displaying results to tests within:

Database Test Suite 3 Tests
Disk Test Suite 3 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
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 Hiding All Results Option
  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 Benchmarksdbench: 12pgbench: 1000 - 1000 - Read Write - Average Latencypgbench: 1000 - 1000 - Read Writefio: Seq Write - IO_uring - No - Yes - 2MB - 1 - Default Test Directorycockroach: KV, 50% Reads - 128fio: Rand Write - IO_uring - No - Yes - 4KB - 1 - Default Test Directorysqlite: 16fio: Seq Read - IO_uring - No - Yes - 2MB - 32 - Default Test Directorysqlite: 8fio: Rand Read - IO_uring - No - Yes - 4KB - 32 - Default Test Directoryfio: Seq Read - IO_uring - No - Yes - 2MB - 1 - Default Test Directorysqlite: 2sqlite: 4BcachefsBtrfsEXT4XFSF2FS747.406157.70165581779.4148184.1682066.87310111.7357.21415811010331.1651.59352.8121582.9433.040302874929.7845262.37521178.22410720.0973.37949256611396.0269.93171.1991611.9931.020327011631.1970152.8221819150.24110798.6595.298157367711448.2144.14966.356808.24419.9765138111010.6970505.5223247154.65010883.3187.274156572011483.7534.05952.8352039.7936.5352748810995.6484252.6221728104.87510432.6984.342156876711387.5041.21757.772OpenBenchmarking.org

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

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.orgms, Fewer Is BetterPostgreSQL 16Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write - Average LatencyF2FSXFSEXT4BtrfsBcachefs306090120150SE +/- 0.68, N = 12SE +/- 1.06, N = 9SE +/- 1.27, N = 9SE +/- 0.26, N = 12SE +/- 7.94, N = 1236.5419.9831.0233.04157.701. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm

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

Flexible IO Tester

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 DirectoryF2FSXFSEXT4BtrfsBcachefs2K4K6K8K10KSE +/- 3.58, N = 3SE +/- 5.97, N = 3SE +/- 60.81, N = 3SE +/- 44.22, N = 3SE +/- 100.08, N = 1510995.6411010.691631.194929.781779.41MIN: 10989.72 / MAX: 11002.08MIN: 10999 / MAX: 11018.62MIN: 1043.13 / MAX: 925220.58MIN: 4841.36 / MAX: 4975.3MIN: 1385.17 / MAX: 3033.51. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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: 128F2FSXFSEXT4BtrfsBcachefs20K40K60K80K100KSE +/- 173.63, N = 3SE +/- 177.77, N = 3SE +/- 267.13, N = 3SE +/- 198.41, N = 3SE +/- 2640.04, N = 1284252.670505.570152.845262.348184.1

Flexible IO Tester

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 DirectoryF2FSXFSEXT4BtrfsBcachefs50K100K150K200K250KSE +/- 2479.24, N = 3SE +/- 1470.61, N = 3SE +/- 934.79, N = 3SE +/- 220.39, N = 3SE +/- 66.80, N = 15221728223247221819752116820MIN: 217209.02 / MAX: 225754.9MIN: 221503.62 / MAX: 226169.77MIN: 220427.04 / MAX: 223595.96MIN: 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

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: 16F2FSXFSEXT4BtrfsBcachefs306090120150SE +/- 1.37, N = 3SE +/- 0.38, N = 3SE +/- 0.30, N = 3SE +/- 0.89, N = 4SE +/- 0.12, N = 3104.88154.65150.2478.2266.871. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

Flexible IO Tester

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 DirectoryF2FSXFSEXT4BtrfsBcachefs2K4K6K8K10KSE +/- 91.69, N = 8SE +/- 64.98, N = 3SE +/- 58.12, N = 3SE +/- 44.48, N = 3SE +/- 53.06, N = 310432.6910883.3110798.6510720.0910111.73MIN: 10119.85 / MAX: 10855.14MIN: 10754.18 / MAX: 10960.58MIN: 10696.74 / MAX: 10898.04MIN: 10631.46 / MAX: 10770.97MIN: 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

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: 8F2FSXFSEXT4BtrfsBcachefs20406080100SE +/- 0.67, N = 9SE +/- 0.25, N = 3SE +/- 0.06, N = 3SE +/- 0.30, N = 3SE +/- 0.51, N = 384.3487.2795.3073.3857.211. (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 DirectoryF2FSXFSEXT4BtrfsBcachefs300K600K900K1200K1500KSE +/- 3142.11, N = 3SE +/- 3432.72, N = 3SE +/- 912.07, N = 3SE +/- 3682.01, N = 3SE +/- 1208.88, N = 3156876715657201573677492566158110MIN: 1563469.75 / MAX: 1574343.53MIN: 1559531.51 / MAX: 1571388.76MIN: 1571879.93 / MAX: 1574845.88MIN: 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.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 DirectoryF2FSXFSEXT4BtrfsBcachefs2K4K6K8K10KSE +/- 8.08, N = 3SE +/- 3.31, N = 3SE +/- 5.93, N = 3SE +/- 2.04, N = 3SE +/- 76.79, N = 311387.5011483.7511448.2111396.0210331.16MIN: 11373.02 / MAX: 11400.95MIN: 11477.88 / MAX: 11489.35MIN: 11439.15 / MAX: 11459.36MIN: 11393.15 / MAX: 11399.97MIN: 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

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: 2F2FSXFSEXT4BtrfsBcachefs1632486480SE +/- 0.47, N = 3SE +/- 0.27, N = 3SE +/- 1.23, N = 12SE +/- 0.40, N = 3SE +/- 0.53, N = 341.2234.0644.1569.9351.591. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

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