QEMU/KVM - openSUSE Tumbleweed KDE - EXT4 VS BTRFS

KVM testing on openSUSE Tumbleweed KDE 20241208 via the Phoronix Test Suite. Testing the performance of the different filesystems BTRFS and EXT4. Note, BTRFS is configured without encryption nor compression. Both systems have a single root partition and no separate partitions (e.g. home). Both VMs have the same minimal KDE setup, as well as OpenGL, 3Daccelaration, and CPU-passthrough enabled. The VM manager used was Virtual Manager (virt-man).

HTML result view exported from: https://openbenchmarking.org/result/2412105-TSUK-241209420&grs.

QEMU/KVM - openSUSE Tumbleweed KDE - EXT4 VS BTRFSProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerOpenGLCompilerFile-SystemScreen ResolutionSystem LayerEXT4BTRFSIntel Core i7-12700H (15 Cores)QEMU Standard PC (Q35 + ICH9 2009) (2024.02-2 BIOS)Intel 82G33/G31/P35/P31 + ICH96GB29GBllvmpipeQEMU GenericQEMU MonitorRed Hat Virtio 1.0 deviceopenSUSE Tumbleweed 202412066.11.8-1-default (x86_64)KDE Plasma 6.2.4X Server 1.21.1.14 + Wayland4.5 Mesa 24.3.1 (LLVM 19.1.4 256 bits)GCC 14.2.1 20241007 [revision 4af44f2cf7d281f3e4f3957efce10e8b2ccb2ad3]ext41920x931KVM28GBvirgl Intel Iris Xe ADL GT2openSUSE Tumbleweed 20241208X Server 1.21.1.144.3 Mesa 24.3.1btrfs1920x888OpenBenchmarking.orgKernel Details- Transparent Huge Pages: alwaysCompiler Details- --build=x86_64-suse-linux --disable-libcc1 --disable-libssp --disable-libstdcxx-pch --disable-libvtv --disable-werror --enable-cet=auto --enable-checking=release --enable-gnu-indirect-function --enable-host-shared --enable-languages=c,c++,objc,fortran,obj-c++,ada,go,d,jit,rust,m2 --enable-libphobos --enable-libstdcxx-allocator=new --enable-link-serialization --enable-linux-futex --enable-multilib --enable-offload-defaulted --enable-offload-targets=nvptx-none,amdgcn-amdhsa, --enable-plugin --enable-ssp --enable-version-specific-runtime-libs --host=x86_64-suse-linux --mandir=/usr/share/man --with-arch-32=x86-64 --with-build-config=bootstrap-lto-lean --with-gcc-major-version-only --with-libstdcxx-zoneinfo=/usr/share/zoneinfo --with-slibdir=/lib64 --with-tune=generic --without-cuda-driver --without-system-libunwind -O2 -O2 -O2 -O2 -O2 -Werror=return-type -Werror=return-type -Werror=return-type -Werror=return-type -fasynchronous-unwind-tables -fasynchronous-unwind-tables -fasynchronous-unwind-tables -fasynchronous-unwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -fstack-clash-protection -fstack-clash-protection -fstack-clash-protection -fstack-clash-protection -funwind-tables -funwind-tables -funwind-tables -funwind-tables -funwind-tables -g' -g' -g' -g' -g' Disk Details- EXT4: NONE / relatime,rw / Block Size: 4096- BTRFS: NONE / discard=async,relatime,rw,space_cache=v2,subvol=/@/home,subvolid=262 / Block Size: 4096 Processor Details- CPU Microcode: 0x434Python Details- EXT4: Python 3.11.11Security Details- gather_data_sampling: Not affected + itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + mmio_stale_data: Not affected + reg_file_data_sampling: Vulnerable: No microcode + retbleed: Not affected + spec_rstack_overflow: Not affected + 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; RSB filling; PBRSB-eIBRS: SW sequence; BHI: SW loop KVM: SW loop + srbds: Not affected + tsx_async_abort: Not affected

QEMU/KVM - openSUSE Tumbleweed KDE - EXT4 VS BTRFSfio: Rand Write - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Rand Write - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Rand Write - Linux AIO - No - Yes - 2MB - Default Test Directoryfio: Rand Write - Linux AIO - No - Yes - 2MB - Default Test Directorydbench: 12 Clientsfio: Seq Write - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Seq Write - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Seq Write - Linux AIO - No - Yes - 2MB - Default Test Directoryfio: Seq Write - Linux AIO - No - Yes - 2MB - Default Test Directoryfio: Rand Read - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Rand Read - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Rand Read - Linux AIO - No - Yes - 2MB - Default Test Directoryfio: Rand Read - Linux AIO - No - Yes - 2MB - Default Test Directorydbench: 1 Clientssqlite: 15fio: Seq Read - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Seq Read - Linux AIO - No - Yes - 4KB - Default Test Directoryfio: Seq Read - Linux AIO - No - Yes - 2MB - Default Test Directoryfio: Seq Read - Linux AIO - No - Yes - 2MB - Default Test Directorysqlite: 8sqlite: 1EXT4BTRFS5410000.5285336670.521601.68514856671.4511.45414886670.9139346678952220.874103.311520.4191.655169466716916671.652292.42114.902142330.0139144000.0141240.2966876670.6720.6776936670.6306453336470000.63283.5439484.1351.639167833316840001.645499.783102.157OpenBenchmarking.org

Flexible IO Tester

Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS120K240K360K480K600KSE +/- 3055.05, N = 3SE +/- 120.19, N = 354100014233-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS0.11880.23760.35640.47520.594SE +/- 0.0031, N = 3SE +/- 0.0001, N = 30.52800.0139-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS110K220K330K440K550KSE +/- 1452.97, N = 3SE +/- 119.52, N = 753366714400-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Random Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS0.11720.23440.35160.46880.586SE +/- 0.0012, N = 3SE +/- 0.0001, N = 70.52100.0141-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Dbench

12 Clients

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.012 ClientsEXT4BTRFS130260390520650SE +/- 1.54, N = 3SE +/- 0.84, N = 3601.69240.301. (CC) gcc options: -lpopt -O2

Flexible IO Tester

Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS300K600K900K1200K1500KSE +/- 3282.95, N = 3SE +/- 2027.59, N = 31485667687667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS0.32650.6530.97951.3061.6325SE +/- 0.003, N = 3SE +/- 0.002, N = 31.4510.672-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS0.32720.65440.98161.30881.636SE +/- 0.004, N = 3SE +/- 0.004, N = 31.4540.677-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS300K600K900K1200K1500KSE +/- 4409.59, N = 3SE +/- 4176.65, N = 31488667693667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS0.20540.41080.61620.82161.027SE +/- 0.007, N = 3SE +/- 0.011, N = 90.9130.630-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS200K400K600K800K1000KSE +/- 7264.83, N = 3SE +/- 10819.22, N = 9934667645333-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS200K400K600K800K1000KSE +/- 15868.19, N = 9SE +/- 3785.94, N = 3895222647000-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Random Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS0.19670.39340.59010.78680.9835SE +/- 0.015, N = 9SE +/- 0.004, N = 30.8740.632-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Dbench

1 Clients

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.01 ClientsEXT4BTRFS20406080100SE +/- 0.87, N = 3SE +/- 0.82, N = 5103.3183.541. (CC) gcc options: -lpopt -O2

SQLite

Threads / Copies: 15

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 15EXT4BTRFS110220330440550SE +/- 8.26, N = 9SE +/- 6.45, N = 9520.42484.14-lz1. (CC) gcc options: -O2 -lm

Flexible IO Tester

Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS0.37240.74481.11721.48961.862SE +/- 0.006, N = 3SE +/- 0.008, N = 31.6551.639-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryEXT4BTRFS400K800K1200K1600K2000KSE +/- 6359.59, N = 3SE +/- 7859.88, N = 316946671678333-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS400K800K1200K1600K2000KSE +/- 333.33, N = 3SE +/- 8082.90, N = 316916671684000-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

Flexible IO Tester

Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - IO Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 2MB - Disk Target: Default Test DirectoryEXT4BTRFS0.37170.74341.11511.48681.8585SE +/- 0.000, N = 3SE +/- 0.008, N = 31.6521.645-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

SQLite

Threads / Copies: 8

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 8EXT4BTRFS110220330440550SE +/- 10.87, N = 9SE +/- 0.58, N = 3292.42499.78-lz1. (CC) gcc options: -O2 -lm

SQLite

Threads / Copies: 1

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 1EXT4BTRFS20406080100SE +/- 0.13, N = 15SE +/- 3.35, N = 1514.90102.16-lz1. (CC) gcc options: -O2 -lm


Phoronix Test Suite v10.8.5