Grub2
如何在核心啟動命令行上指定多個調度程序?
我們的系統具有旋轉機械磁碟和 NVME 儲存。我們希望通過取消任何 IO 調度程序來減少 IO 的 CPU 成本。我們想在 Linux 啟動命令行上指定它;即在
GRUB_CMDLINE_LINUX
文件中/etc/default/grub
。
- 對於機械磁碟,我們可以附加
elevator=noop
到命令行。這對應於中的noop
值/sys/block/sda/queue/scheduler
- 對於 NVME 儲存,我們改為使用
none
in/sys/block/nvme0n1/queue/scheduler
; 大概(無法確認)可以在引導時通過附加elevator=none
.這變成了一個兩部分的問題:
elevator=none
用於 NVME 儲存的值是否正確GRUB_CMDLINE_LINUX
?- 可以在 中指定這兩個值
GRUB_CMDLINE_LINUX
嗎?如果第二個是正確的,我猜這
elevator=noop
將為旋轉磁碟正確設置,但 NVME 控制器會優雅地忽略它;然後elevator=none
將為 NVME 磁碟正確設置,但旋轉磁碟控制器將優雅地忽略*.*
I/O 調度程序在引導時全域分配。
即使您使用多個
elevator=[value]
分配,也只有最後一個會生效。要自動/永久設置每個設備的調度程序,您可以使用
udev
規則、systemd
服務或配置和性能調整工具,例如tuned
.至於您的另一個問題,答案是肯定的,
elevator=none
是用於 NVME 儲存的正確值。