我正在运行安装了 HWE 堆栈的 Ubuntu 18.04 (Bionic)。这意味着我运行的是 5.3 Linux 内核。
在旧版本的内核中,显然elevator=noop
当 GRUB 启动 Linux 内核时会导致 IO 调度无操作。一旦安装了 5.3 版内核,通过此机制就不再可能出现这种情况。
所讨论的机器是虚拟机,因此在客户机中进行 IO 调度实际上没有意义。
我可以通过直接更改命令行来检查和调整调度程序。
$cat /sys/block/vda/queue/scheduler
[mq-deadline] none
$echo none > /sys/block/vda/queue/scheduler
$cat /sys/block/vda/queue/scheduler
[none] mq-deadline
这将切换虚拟机,none
直到重新启动。启动时有很多方法可以做到这一点,但在启动时在 Ubuntu 18.04 中更改这些设置的正常方法是什么?有没有办法将它应用于所有块设备,而不仅仅是一个?
答案1
我通常把
for SCH in /sys/block/*/queue/scheduler ; do
echo "none" > "$SCH" 2>/dev/null
done
进入/etc/rc.local
(并确保它是可执行的并由 root 拥有)