添加更多调度程序

添加更多调度程序

我在教程中看到了不同的 IO 调度程序,例如 cfq、noop,但是当我在 Linux 上测试时,我没有看到它们。

$ cat /sys/block/sda/queue/scheduler
[mq-deadline] none
$ uname -r
5.13.0-27-generic
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

我想知道我是否可以做更多事情来查看更多调度程序。任何想法?

更新:

根据建议,我看到以下 IOSCHED 值

$ grep IOSCHED  /boot/config-5.13.0-27-generic
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=m
CONFIG_IOSCHED_BFQ=m
CONFIG_BFQ_GROUP_IOSCHED=y

此外,还有两个模块/lib/modules

$ ls /lib/modules/5.13.0-27-generic/kernel/block/
bfq.ko  kyber-iosched.ko

当我加载模块时,我在列表中看不到 bfq。

$ cat /sys/block/sda/queue/scheduler
[mq-deadline] none
$ sudo modprobe kyber-iosched bfq
$ cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber none

这是正确的输出吗?

答案1

在大多数发行版内核中,都可以使用其他调度程序,但需要加载它们;例如

sudo modprobe kyber-iosched
sudo modprobe bfq

将加载 Kyber 和 BFQ I/O 调度程序(请参阅block/Kconfig.iosched了解详细信息),然后应该可以选择它们:

$ cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none

查看内核文件 ( )的内容/lib/modules/$(uname -r)/kernel/block和设置。IOSCHED.config/boot/config-$(uname -r)

相关内容