Ionice
離子無效果
系統是 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
.