Linux

iotop 和 ionice -p 為同一程序顯示不同的類/優先級

  • October 24, 2015

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 類/優先級。如果有人知道解決方法/解決方案會很好。

引用自:https://unix.stackexchange.com/questions/238444