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 Bcachefs File-System Benchmarks - Phoronix Test Suite Bcachefs File-System Benchmarks Bcachefs file-system benchmarks by Michael Larabel for a future article.
HTML result view exported from: https://openbenchmarking.org/result/2311274-NE-SSDSTORAG18&grr&sro .
Bcachefs File-System Benchmarks Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server OpenGL Compiler File-System Screen Resolution Bcachefs Btrfs EXT4 XFS F2FS AMD Ryzen Threadripper 7980X 64-Cores @ 8.21GHz (64 Cores / 128 Threads) ASUS Pro WS TRX50-SAGE WIFI (0217 BIOS) AMD Device 14a4 128GB 2000GB Corsair MP700 PRO + 1000GB Western Digital WDS100T1X0E-00AFY0 AMD Radeon RX 7900 XT 20GB (2025/1249MHz) Realtek ALC1220 DELL U2723QE Aquantia Device 04c0 + Intel I226-LM + MEDIATEK MT7922 802.11ax PCI Ubuntu 23.10 6.7.0-060700rc2daily20231126-generic (x86_64) GNOME Shell 45.0 X Server 1.21.1.7 + Wayland 4.6 Mesa 23.2.1-1ubuntu3 (LLVM 15.0.7 DRM 3.56) GCC 13.2.0 BcacheFS 3840x2160 btrfs ext4 xfs f2fs OpenBenchmarking.org Kernel Details - Transparent Huge Pages: madvise Compiler Details - --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 Disk Details - 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 Processor Details - Scaling Governor: amd-pstate-epp powersave (EPP: balance_performance) - CPU Microcode: 0xa108105 Security Details - 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
Bcachefs File-System Benchmarks dbench: 12 pgbench: 1000 - 1000 - Read Write - Average Latency pgbench: 1000 - 1000 - Read Write fio: Seq Write - IO_uring - No - Yes - 2MB - 1 - Default Test Directory cockroach: KV, 50% Reads - 128 fio: Rand Write - IO_uring - No - Yes - 4KB - 1 - Default Test Directory sqlite: 16 fio: Seq Read - IO_uring - No - Yes - 2MB - 32 - Default Test Directory sqlite: 8 fio: Rand Read - IO_uring - No - Yes - 4KB - 32 - Default Test Directory fio: Seq Read - IO_uring - No - Yes - 2MB - 1 - Default Test Directory sqlite: 2 sqlite: 4 Bcachefs Btrfs EXT4 XFS F2FS 747.406 157.701 6558 1779.41 48184.1 6820 66.873 10111.73 57.214 158110 10331.16 51.593 52.812 1582.94 33.040 30287 4929.78 45262.3 75211 78.224 10720.09 73.379 492566 11396.02 69.931 71.199 1611.99 31.020 32701 1631.19 70152.8 221819 150.241 10798.65 95.298 1573677 11448.21 44.149 66.356 808.244 19.976 51381 11010.69 70505.5 223247 154.650 10883.31 87.274 1565720 11483.75 34.059 52.835 2039.79 36.535 27488 10995.64 84252.6 221728 104.875 10432.69 84.342 1568767 11387.50 41.217 57.772 OpenBenchmarking.org
Dbench Client Count: 12 OpenBenchmarking.org MB/s, More Is Better Dbench 4.0 Client Count: 12 Bcachefs Btrfs EXT4 F2FS XFS 400 800 1200 1600 2000 SE +/- 16.80, N = 9 SE +/- 9.48, N = 3 SE +/- 18.01, N = 9 SE +/- 1.03, N = 3 SE +/- 0.63, N = 3 747.41 1582.94 1611.99 2039.79 808.24 1. (CC) gcc options: -lpopt -O2
PostgreSQL Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write - Average Latency OpenBenchmarking.org ms, Fewer Is Better PostgreSQL 16 Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write - Average Latency Bcachefs Btrfs EXT4 F2FS XFS 30 60 90 120 150 SE +/- 7.94, N = 12 SE +/- 0.26, N = 12 SE +/- 1.27, N = 9 SE +/- 0.68, N = 12 SE +/- 1.06, N = 9 157.70 33.04 31.02 36.54 19.98 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm
PostgreSQL Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL 16 Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write Bcachefs Btrfs EXT4 F2FS XFS 11K 22K 33K 44K 55K SE +/- 393.97, N = 12 SE +/- 231.44, N = 12 SE +/- 1417.85, N = 9 SE +/- 570.95, N = 12 SE +/- 3124.70, N = 9 6558 30287 32701 27488 51381 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm
Flexible IO Tester Type: Sequential Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test Directory OpenBenchmarking.org MiB/s, More Is Better Flexible IO Tester 3.35 Type: Sequential Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test Directory Bcachefs Btrfs EXT4 F2FS XFS 2K 4K 6K 8K 10K SE +/- 100.08, N = 15 SE +/- 44.22, N = 3 SE +/- 60.81, N = 3 SE +/- 3.58, N = 3 SE +/- 5.97, N = 3 1779.41 4929.78 1631.19 10995.64 11010.69 MIN: 1385.17 / MAX: 3033.5 MIN: 4841.36 / MAX: 4975.3 MIN: 1043.13 / MAX: 925220.58 MIN: 10989.72 / MAX: 11002.08 MIN: 10999 / MAX: 11018.62 1. (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 Workload: KV, 50% Reads - Concurrency: 128 OpenBenchmarking.org ops/s, More Is Better CockroachDB 22.2 Workload: KV, 50% Reads - Concurrency: 128 Bcachefs Btrfs EXT4 F2FS XFS 20K 40K 60K 80K 100K SE +/- 2640.04, N = 12 SE +/- 198.41, N = 3 SE +/- 267.13, N = 3 SE +/- 173.63, N = 3 SE +/- 177.77, N = 3 48184.1 45262.3 70152.8 84252.6 70505.5
Flexible IO Tester Type: Random Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 1 - Disk Target: Default Test Directory OpenBenchmarking.org IOPS, More Is Better Flexible IO Tester 3.35 Type: Random Write - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 1 - Disk Target: Default Test Directory Bcachefs Btrfs EXT4 F2FS XFS 50K 100K 150K 200K 250K SE +/- 66.80, N = 15 SE +/- 220.39, N = 3 SE +/- 934.79, N = 3 SE +/- 2479.24, N = 3 SE +/- 1470.61, N = 3 6820 75211 221819 221728 223247 MIN: 74826.59 / MAX: 75589.96 MIN: 220427.04 / MAX: 223595.96 MIN: 217209.02 / MAX: 225754.9 MIN: 221503.62 / MAX: 226169.77 1. (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 Threads / Copies: 16 OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.41.2 Threads / Copies: 16 Bcachefs Btrfs EXT4 F2FS XFS 30 60 90 120 150 SE +/- 0.12, N = 3 SE +/- 0.89, N = 4 SE +/- 0.30, N = 3 SE +/- 1.37, N = 3 SE +/- 0.38, N = 3 66.87 78.22 150.24 104.88 154.65 1. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm
Flexible IO Tester Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 32 - Disk Target: Default Test Directory OpenBenchmarking.org MiB/s, More Is Better Flexible IO Tester 3.35 Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 32 - Disk Target: Default Test Directory Bcachefs Btrfs EXT4 F2FS XFS 2K 4K 6K 8K 10K SE +/- 53.06, N = 3 SE +/- 44.48, N = 3 SE +/- 58.12, N = 3 SE +/- 91.69, N = 8 SE +/- 64.98, N = 3 10111.73 10720.09 10798.65 10432.69 10883.31 MIN: 10037.07 / MAX: 10214.38 MIN: 10631.46 / MAX: 10770.97 MIN: 10696.74 / MAX: 10898.04 MIN: 10119.85 / MAX: 10855.14 MIN: 10754.18 / MAX: 10960.58 1. (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 Threads / Copies: 8 OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.41.2 Threads / Copies: 8 Bcachefs Btrfs EXT4 F2FS XFS 20 40 60 80 100 SE +/- 0.51, N = 3 SE +/- 0.30, N = 3 SE +/- 0.06, N = 3 SE +/- 0.67, N = 9 SE +/- 0.25, N = 3 57.21 73.38 95.30 84.34 87.27 1. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm
Flexible IO Tester Type: Random Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 32 - Disk Target: Default Test Directory OpenBenchmarking.org IOPS, More Is Better Flexible IO Tester 3.35 Type: Random Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 4KB - Job Count: 32 - Disk Target: Default Test Directory Bcachefs Btrfs EXT4 F2FS XFS 300K 600K 900K 1200K 1500K SE +/- 1208.88, N = 3 SE +/- 3682.01, N = 3 SE +/- 912.07, N = 3 SE +/- 3142.11, N = 3 SE +/- 3432.72, N = 3 158110 492566 1573677 1568767 1565720 MIN: 487738.18 / MAX: 499795.26 MIN: 1571879.93 / MAX: 1574845.88 MIN: 1563469.75 / MAX: 1574343.53 MIN: 1559531.51 / MAX: 1571388.76 1. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native
Flexible IO Tester Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test Directory OpenBenchmarking.org MiB/s, More Is Better Flexible IO Tester 3.35 Type: Sequential Read - Engine: IO_uring - Buffered: No - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test Directory Bcachefs Btrfs EXT4 F2FS XFS 2K 4K 6K 8K 10K SE +/- 76.79, N = 3 SE +/- 2.04, N = 3 SE +/- 5.93, N = 3 SE +/- 8.08, N = 3 SE +/- 3.31, N = 3 10331.16 11396.02 11448.21 11387.50 11483.75 MIN: 10187.06 / MAX: 10449.23 MIN: 11393.15 / MAX: 11399.97 MIN: 11439.15 / MAX: 11459.36 MIN: 11373.02 / MAX: 11400.95 MIN: 11477.88 / MAX: 11489.35 1. (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 Threads / Copies: 2 OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.41.2 Threads / Copies: 2 Bcachefs Btrfs EXT4 F2FS XFS 16 32 48 64 80 SE +/- 0.53, N = 3 SE +/- 0.40, N = 3 SE +/- 1.23, N = 12 SE +/- 0.47, N = 3 SE +/- 0.27, N = 3 51.59 69.93 44.15 41.22 34.06 1. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm
SQLite Threads / Copies: 4 OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.41.2 Threads / Copies: 4 Bcachefs Btrfs EXT4 F2FS XFS 16 32 48 64 80 SE +/- 0.33, N = 3 SE +/- 0.16, N = 3 SE +/- 0.60, N = 3 SE +/- 0.66, N = 3 SE +/- 0.17, N = 3 52.81 71.20 66.36 57.77 52.84 1. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm
Phoronix Test Suite v10.8.4