ionice使用说明与参数详析
Ionice使用說明與參數詳析
命令功能:
ionice – 獲取或設置程序的IO調度與優先級。
?
命令格式:
| ionice [[-c class] [-n classdata] [-t]] -p PID [PID]… ? ionice [-c class] [-n classdata] [-t] COMMAND [ARG]… |
?
IO調度策略:
ionice將磁盤IO調度分為三類:
ilde:空閑磁盤調度,該調度策略是在當前系統沒有其他進程需要進行磁盤IO時,才能進行磁盤;因此該策略對當前系統的影響基本為0;當然,該調度策略不能帶有任何優先級參數;目前,普通用戶是可以使用該調度策略(自從內核2.6.25開始)。
Best effort:是缺省的磁盤IO調度策略;(1)該調度策略可以指定優先級參數(范圍是0~7,數值越小,優先級越高);(2)針對處于同一優先級的程序將采round-robin方式;(3)對于best effort調度策略,8個優先級等級可以說明在給定的一個調度窗口中時間片的大小。(4)目前,普調用戶(非root用戶)是可以使用該調度策略。(5)在內核2.6.26之前,沒有設置IO優先級的進程會使用“none”作為調度策略,但是這種策略使得進程看起來像是采用了best effort調度策略,因為其優先級是通過關于cpu nice有關的公式計算得到的:io_priority = (cpu_nice + 20) / 5。(6)在內核2.6.26之后,如果當前系統使用的是CFQ調度器,那么如果進程沒有設置IO優先級級別,將采用與內核2.6.26之前版本同樣的方式,推到出io優先級級別。
Real time:實時調度策略,如果設置了該磁盤IO調度策略,則立即訪問磁盤,不管系統中其他進程是否有IO。因此使用實時調度策略,需要注意的是,該訪問策略可能會使得其他進程處于等待狀態。
?
參數說明:
-c class :class表示調度策略,其中0 for none, 1 for real time, 2 for best-effort, 3 for idle。
-n classdata:classdata表示IO優先級級別,對于best effort和real time,classdata可以設置為0~7。
-p pid:指定要查看或設置的進程號或者線程號,如果沒有指定pid參數,ionice will run the listed program with the given parameters。
-t :忽視設置優先級時產生的錯誤。
COMMAND:表示命令名
?
實例:
# ionice -c 3 -p 89
設置進程號為89的進程的調度策略是idle。
?
# ionice -c 2 -n 0 bash
運行bash,調度策略是best-effort,最高優先級。
?
# ionice -p 89 91
打印進程號為89和91進程的調度策略和IO優先級。
?
#ionice -c3 -p$$
將當前的進程(就是shell)磁盤IO調度策略設置為idle類型.
轉載于:https://blog.51cto.com/lilinji/964639
總結
以上是生活随笔為你收集整理的ionice使用说明与参数详析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据文件路径生成相应文件
- 下一篇: openstack nova 源码分析3