Linux
iotop 和 ionice -p 為同一程序顯示不同的類/優先級
在
ionice -c2 -n7 <PID>
I/O 密集型程序(VirtualBox VM)上執行並使用ionice -p <PID>
它檢查結果後顯示best-effort: prio 7
了預期結果。但是,當通過
iotop
它監視所有程序的整體磁碟 I/O 時,會在PRIO
列中顯示be/4
該程序的值,我認為這意味著最好的努力**和級別****(**優先級)4,這是平均優先級,而不是預期的。有人可以評論為什麼 ionice 和 iotop 顯示的內容之間存在差異嗎?還有其他方法可以驗證給定程序的實際 I/O 優先級
ionice -p
嗎?據我了解,有
/proc/<pid>/io
但它只顯示讀取和寫入的字節/字元,而不是優先級,cf。不知道iotop是哪個程序進行I/O還有如何查看一個程序的IO優先級?只列出
ionice -p
為了完整起見,這是在帶有 iotop 0.3.2 的 RHEL 6.7 上,調度程序是預設的 CFQ。
似乎我已經找到了部分答案。預設情況下
iotop
顯示所有程序和執行緒,我通常通過iotop -o
它只顯示執行緒和程序執行 I/O 執行它。所示的 VirtualBox 程序be/4
實際上是一個執行緒,當我iotop -p <pid>
針對我更改的 PID執行時,ionice
它會正確顯示be/7
預期的結果。知道為什麼該程序的一個執行緒具有不同的 I/O 類/優先級仍然會很有趣,但是我的 ionice 沒有
-P
選項來更改程序組的 I/O 類/優先級。如果有人知道解決方法/解決方案會很好。