您不能在 Kubuntu 19.04 中选择 CFQ 调度程序,因为它已从 5.0 内核中删除。在我的情况下,我需要 CFQ,因为它在以 Windows 10 作为来宾 SO 运行虚拟机时提供旋转硬盘驱动器的最佳性能,其他调度程序使系统无法使用。默认情况下,安装中的 Kubuntu 19.04 仅提供 2 部电梯 mq-deadline,在我的情况下,没有一个提供比 CFQ 差得多的性能。
sudo cat/sys/block/sda/queue/scheduler
mq-deadline none
只有我必须尝试使用默认情况下未出现在安装中的其他 2 个调度程序,这些调度程序是 BFQ 和 Kyber。
接下来我将描述如何启用 BFQ 和 Kyber 模块
1)首先使用以下命令验证系统中是否存在模块:
sudo modprobe bfq
sudo modprobe kyber-iosched
如果没有错误,您可以使用命令验证模块是否已加载
sudo cat/sys/block/sda/queue/scheduler
必须返回
mq-deadline [bfq] kyber none
2)使这些模块在系统启动时加载:
sudo -i
echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf
echo bfq > /etc/modules-load.d/bfq.conf
3)下一步是告诉系统使用哪个调度器,如果文件不存在则创建一个文件:
/etc/udev/rules.d/60-scheduler.rules
用以下几行
# set cfq scheduler
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
如果您想尝试 kyber 而不是 BFQ,请将显示“bfq”的行的最后一个单词替换为“kyber”
4)让系统识别变化
须藤 udevadm 控制 --reload; sudo udevadm 触发器
并且更改已通过验证
sudo cat/sys/block/sda/queue/scheduler
mq-deadline kyber [bfq] none
完成的。
资料来源:
https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418
https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136