低延遲 IO 調度器

低延遲 IO 調度器

我有一些虛擬機器運行基於 Ubuntu 雲端的映像 14.04-1 LTS 版本。我想查看虛擬機器上不同 IO 調度程式的 IO 效能,因此我在/sys/block/<drive>/queue/scheduler來賓作業系統上更改 IO 調度程式。通常應有 、cfqdeadlinenoop來選擇。但我看到的是none。這是否意味著Canonical已經刪除了基於雲端的鏡像中的I/O調度器或none這裡的調度器是重命名的noop調度器?如果系統中沒有 I/O 調度程式會發生什麼?所有的io請求都是按照先進先出的順序直接傳送給主機嗎?

感謝您提供一些線索!

答案1

這個 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不是 的別名noopnone表示“未使用調度程序”。

答案2

似乎在內核 >= 3.13 上none不再是 的別名noop。當blk-mq輸入/輸出框架正在使用中;這意味著完全繞過舊的調度程序,因為blk-mq(現在)根本沒有調度程序可供選擇。

在早期的核心中,nonereally 是一個記錄很少的別名noop。看這裡更多細節。

答案3

None 不是 noop 的別名。

由於沒有使用調度程序,因此未顯示任何內容。使用 NVMe 協定而不是 SATA 的 SSD 繞過了傳統的 I/O 調度程序。

答案4

https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

none (Multiqueue) 多隊列無操作 I/O 調度程式。不重新排序請求,最小的開銷。非常適合快速隨機 I/O 設備,例如 NVME。

相關內容