Skip to content

Add udev rule to select I/O scheduler #224

Merged
merged 1 commit into from Jan 20, 2022
Merged

Add udev rule to select I/O scheduler #224

merged 1 commit into from Jan 20, 2022

Conversation

donald
Copy link
Collaborator

@donald donald commented Jan 18, 2022

Change all block devices which can have a scheduler to BFQ.

I've quick-tested spinning disks, ssd, nvme and virtio block devices and BFQ was always equal or better than any other scheduler ("none", "mq-deadline", "kyber"). No fancy test, just Kernel compile times.

Anyway, we do want to have the BFQ features (cgroups weight based IO throttling) . So until we find a clear performance disadvantage, switch all devices to BFQ for now. If we later find a situation, where BFQ doesn't seem to be the best fit, we can switch the running system to any other scheduler and update the rules file.

I need a reason NOT to use BFQ, not a reason to use it.

@pmenzel
Copy link
Contributor

pmenzel commented Jan 18, 2022

What happens on systems with a Linux kernel not supporting BFQ? The rule is just ignored? Is there an error?

@donald
Copy link
Collaborator Author

donald commented Jan 18, 2022

It is silently ignored. The ugly messages are only emitted if queue/scheduler does not exist, not when udevd writes something invalid into it.

Change all block devices which can have a scheduler to BFQ.

Test for existing scheduler (which might be "none") to avoid an ugly
message in the journal log when we try to set a scheduler to a block
device which can't have one (e.g. a partition).
@donald donald merged commit e34ac59 into master Jan 20, 2022
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants