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

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 2412105-TSUK-241209420
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
EXT4
December 08
  7 Hours, 25 Minutes
BTRFS
December 09
  15 Hours, 43 Minutes
Invert Behavior (Only Show Selected Data)
  11 Hours, 34 Minutes
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):


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

EXT4 vs. BTRFS ComparisonPhoronix Test SuiteBaseline+925.3%+925.3%+1850.6%+1850.6%+2775.9%+2775.9%7.5%1585.5%Rand Write - Linux AIO - No - Yes - 4KB3701%Rand Write - Linux AIO - No - Yes - 4KB3698.6%Rand Write - Linux AIO - No - Yes - 2MB3606%Rand Write - Linux AIO - No - Yes - 2MB3595%12 Clients150.4%Seq Write - Linux AIO - No - Yes - 4KB116%Seq Write - Linux AIO - No - Yes - 4KB115.9%Seq Write - Linux AIO - No - Yes - 2MB114.8%Seq Write - Linux AIO - No - Yes - 2MB114.6%870.9%Rand Read - Linux AIO - No - Yes - 4KB44.9%Rand Read - Linux AIO - No - Yes - 4KB44.8%Rand Read - Linux AIO - No - Yes - 2MB38.4%Rand Read - Linux AIO - No - Yes - 2MB38.3%1 Clients23.7%15SQLiteFlexible IO TesterFlexible IO TesterFlexible IO TesterFlexible IO TesterDbenchFlexible IO TesterFlexible IO TesterFlexible IO TesterFlexible IO TesterSQLiteFlexible IO TesterFlexible IO TesterFlexible IO TesterFlexible IO TesterDbenchSQLiteEXT4BTRFS

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

FIO, the Flexible I/O Tester, is an advanced Linux disk benchmark supporting multiple I/O engines and a wealth of options. FIO was written by Jens Axboe for testing of the Linux I/O subsystem and schedulers. Learn more via the OpenBenchmarking.org test page.

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 DirectoryBTRFSEXT4120K240K360K480K600KSE +/- 120.19, N = 3SE +/- 3055.05, N = 314233541000-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.11880.23760.35640.47520.594SE +/- 0.0001, N = 3SE +/- 0.0031, N = 30.01390.5280-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4110K220K330K440K550KSE +/- 119.52, N = 7SE +/- 1452.97, N = 314400533667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.11720.23440.35160.46880.586SE +/- 0.0001, N = 7SE +/- 0.0012, N = 30.01410.5210-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -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.012 ClientsBTRFSEXT4130260390520650SE +/- 0.84, N = 3SE +/- 1.54, N = 3240.30601.691. (CC) gcc options: -lpopt -O2

Flexible IO Tester

FIO, the Flexible I/O Tester, is an advanced Linux disk benchmark supporting multiple I/O engines and a wealth of options. FIO was written by Jens Axboe for testing of the Linux I/O subsystem and schedulers. Learn more via the OpenBenchmarking.org test page.

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 DirectoryBTRFSEXT4300K600K900K1200K1500KSE +/- 2027.59, N = 3SE +/- 3282.95, N = 36876671485667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.32650.6530.97951.3061.6325SE +/- 0.002, N = 3SE +/- 0.003, N = 30.6721.451-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.32720.65440.98161.30881.636SE +/- 0.004, N = 3SE +/- 0.004, N = 30.6771.454-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4300K600K900K1200K1500KSE +/- 4176.65, N = 3SE +/- 4409.59, N = 36936671488667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.20540.41080.61620.82161.027SE +/- 0.011, N = 9SE +/- 0.007, N = 30.6300.913-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4200K400K600K800K1000KSE +/- 10819.22, N = 9SE +/- 7264.83, N = 3645333934667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4200K400K600K800K1000KSE +/- 3785.94, N = 3SE +/- 15868.19, N = 9647000895222-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.19670.39340.59010.78680.9835SE +/- 0.004, N = 3SE +/- 0.015, N = 90.6320.874-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -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.01 ClientsBTRFSEXT420406080100SE +/- 0.82, N = 5SE +/- 0.87, N = 383.54103.311. (CC) gcc options: -lpopt -O2

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: 15EXT4BTRFS110220330440550SE +/- 8.26, N = 9SE +/- 6.45, N = 9520.42484.14-lz1. (CC) gcc options: -O2 -lm

Flexible IO Tester

FIO, the Flexible I/O Tester, is an advanced Linux disk benchmark supporting multiple I/O engines and a wealth of options. FIO was written by Jens Axboe for testing of the Linux I/O subsystem and schedulers. Learn more via the OpenBenchmarking.org test page.

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 DirectoryBTRFSEXT40.37240.74481.11721.48961.862SE +/- 0.008, N = 3SE +/- 0.006, N = 31.6391.655-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4400K800K1200K1600K2000KSE +/- 7859.88, N = 3SE +/- 6359.59, N = 316783331694667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT4400K800K1200K1600K2000KSE +/- 8082.90, N = 3SE +/- 333.33, N = 316840001691667-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

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 DirectoryBTRFSEXT40.37170.74341.11511.48681.8585SE +/- 0.008, N = 3SE +/- 0.000, N = 31.6451.652-lz1. (CC) gcc options: -rdynamic -lm -laio -lpthread -ldl -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: 8BTRFSEXT4110220330440550SE +/- 0.58, N = 3SE +/- 10.87, N = 9499.78292.42-lz1. (CC) gcc options: -O2 -lm

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

21 Results Shown

Flexible IO Tester:
  Rand Write - Linux AIO - No - Yes - 4KB - Default Test Directory:
    IOPS
    MB/s
  Rand Write - Linux AIO - No - Yes - 2MB - Default Test Directory:
    IOPS
    MB/s
Dbench
Flexible IO Tester:
  Seq Write - Linux AIO - No - Yes - 4KB - Default Test Directory:
    IOPS
    MB/s
  Seq Write - Linux AIO - No - Yes - 2MB - Default Test Directory:
    MB/s
    IOPS
  Rand Read - Linux AIO - No - Yes - 4KB - Default Test Directory:
    MB/s
    IOPS
  Rand Read - Linux AIO - No - Yes - 2MB - Default Test Directory:
    IOPS
    MB/s
Dbench
SQLite
Flexible IO Tester:
  Seq Read - Linux AIO - No - Yes - 4KB - Default Test Directory:
    MB/s
    IOPS
  Seq Read - Linux AIO - No - Yes - 2MB - Default Test Directory:
    IOPS
    MB/s
SQLite:
  8
  1