Ionice

離子無效果

  • June 6, 2014

系統是 Ubuntu 10 LTS 64 位(2.6.35.31),我在 xen 4.0 上執行,沒有服務處於活動狀態,cron 停止,調度程序是 cfq 用於磁碟 /usr 安裝自:

時間find /usr -exec stat {} \; > /dev/null 2>&1&

給予

real    0m35.760s
user    0m0.270s
sys 0m3.910s

時間ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1&

給予

real    0m36.110s
user    0m0.310s
sys 0m4.100s

這完全符合預期,現在我同時執行兩者:

時間find /usr -exec stat {} \; > /dev/null 2>&1和時間ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1&

在我看來,離子版本應該慢得多,而直接版本應該像單獨執行一樣快。但:

直的:

real    1m10.430s
user    0m0.320s
sys 0m3.940s

離子化:

real    1m10.230s
user    0m0.250s
sys 0m4.020s

這意味著 ionice 根本不起作用。有什麼提示嗎?

這幾乎可以肯定是行不通的,因為您沒有使用 CFQ 核心調度程序。

看看/sys/block/xvdh/queue/scheduler你正在使用哪個。那個在

$$ $$括號是活動的。 它現在似乎deadline在大多數係統上,ionice 不起作用。(據我所知,這一切都記錄得非常糟糕)。

由於兩個程序都在請求相同的文件,因此無論哪個第二個到達那裡都會從文件系統記憶體中獲取它們。由於它實際上並不移動主軸,因此不受ionice.

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