Virtualization

Linux沒有I/O調度器是什麼意思

  • December 3, 2019

我有一些執行 Ubuntu 基於雲的映像 14.04-1 LTS 版本的虛擬機。我想查看 VM 上不同 IO 調度程序的 IO 性能,所以我/sys/block/<drive>/queue/scheduler在來賓作業系統上更改了 IO 調度程序。通常,應該有cfqdeadline、 或noop可供選擇。但我看到的是none。是說Canonical去掉了基於雲的鏡像中的I/O調度器還是none這裡的調度器是重命名的noop調度器?如果我們在系統中沒有 I/O 調度程序會發生什麼?所有的io請求都是按FIFO順序直接發送給主機的嗎?

感謝您提供一些啟示!

這個 Debian 維基

低延遲 IO 調度器

(使用 NVMe 協議而不是 SATA 的 SSD 不需要此步驟,它繞過傳統的 I/O 調度程序並使用blk-mq模組代替。)

預設的 I/O 調度程序對數據進行排隊,以最大限度地減少 HDD 上的尋軌,這對於 SSD 來說不是必需的。因此,使用"deadline"僅確保批量事務不會減慢小型事務的調度程序:安裝sysfsutils

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

(調整 sdX 以匹配您的 SSD)重新啟動或

echo deadline > /sys/block/sdX/queue/scheduler

所以,答案是:none不是noop. none表示“未使用調度程序”。

引用自:https://serverfault.com/questions/693348