Repository navigation
Kyber default (#11653): worse read latency under heavy writes than mq-deadline on a SATA SSD with LUKS #16984
tyz30007
started this conversation in
Suggestions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
4.5 sets kyber on all whole disks (
60-omarchy-io-scheduler.rules, from #11653) so that "interactive reads keep flowing while a large build, copy, or package upgrade floods the disk with writes". #11653 checked that the rule applies but didn't include latency numbers, so here is a measurement from a SATA machine, the case #3856 was about.On this machine kyber didn't protect reads under heavy writes. The median read got slower than with mq-deadline, mean and p99 didn't change, and the writer ran slightly faster.
Setup: Samsung SSD 870 EVO 1TB (SATA), LUKS2 (
no_read_workqueue,no_write_workqueue,allow_discards), btrfs (compress=zstd:1,discard=async), AMD A4-7210, linux-omarchy 7.2.8-9, Omarchy 4.5.0rc2.Test: fio 4K random reads at QD1 (
psync,direct=1) from a settled file, while a second job writes 1 MiB blocks sequentially (libaio, iodepth 8,direct=1) to a nodatacow file. Each run is 10 s, with the scheduler switched at runtime. The first four runs went A,B,B,A; the last two mq-deadline runs came later, after I switched the disk back for good.With no writer running, both gave the same read latency (~193 µs mean, ~1 ms p99).
This is one machine, and I didn't test BFQ (#3856's proposal) or NVMe, where kyber may well do better. If others see the same on SATA, maybe limit the rule to NVMe (
KERNEL=="nvme*") and leave SATA disks on the kernel default. For now I'm overriding it locally with a later-numbered rule, as #11653 suggests.fio commands
Measured and written up with an AI agent (Claude, via Hermes); every number above comes from real runs on this machine.
All reactions