Benchmarking BTRFS
This is some sporadic notes about looking at read/write speeds on btrfs with encryption and some recent features.
fio --rw={read,write} --ioengine=io_uring --bs=512k --size=100g --numjobs=1 --direct=1 --runtime=60 --name -test-btrfs
NB: Tests where just ran once or twice. Hardly science.
TL;DR: Compression doesn't matter. Any improvements in the encryption space is the important part.
No encryption
Baseline (btrfs, no compression)
Seqread: 1417 MiB/s Seqwrite: 2116 MiB/s
Btrfs + zstd:3
Seqread: 1340 MiB/s Seqwrite: 2025 MiB/s
Btrfs + zstd:1
Seqread: 1388 MiB/s Seqwrite: 2168 MiB/s
Encryption
Defaults
Baseline (btrfs, no compression)
Seqread: 605 MiB/s Seqwrite: 777 MiB/s
Btrfs + zstd:3
Seqread: 642 MiB/s Seqwrite: 736 MiB/s
Btrfs + zstd:1
Seqread: 605 MiB/s Seqwrite: 780 MiB/s
Encryption - --perf-no_{write,read}_workqeue
Defaults + --perf. Note: I skipped compression after this point. It doesn't matter.
Baseline (btrfs, no compression)
Seqread: 561 MiB/s Seqwrite: 808 MiB/s
Btrfs + zstd:3
Seqread: 607 MiB/s Seqwrite: 802 MiB/s
Encryption - --perf-no_{write,read}_workqeue + 4k sector size
Btrfs + zstd:3
Seqread: 746 MiB/s Seqwrite: 1500 MiB/s