IONICE
Section: User Commands (1)
Updated: July 2011
Index
Return to Main Contents
 
名前
ionice - プロセス I/O のスケジューリングクラスと優先度を設定または取得する。
 
書式
ionice
[-c
class]
[-n
level]
[-t]
-p
PID...
ionice
[-c
class]
[-n
level]
[-t]
-P
PGID...
ionice
[-c
class]
[-n
level]
[-t]
-u
UID...
ionice
[-c
class]
[-n
level]
[-t]
command [argument...]
 
説明
このプログラムは、対象プログラムの I/O スケジューリングクラスと優先度を設定または取得する。
引き数が指定されない場合、または単に -p が指定された場合、
ionice はそのプロセスの、現在の I/O スケジューリングクラスと
優先度を取得する。
command が指定された場合、
ionice
はコマンドを指定した引き数で実行する。
class が指定されない場合、
command
は "best-effort" スケジューリングクラスで実行される。
デフォルトの優先度レベルは 4 である。
これを書いている時点では、プロセスは 3 つのスケジューリングクラスのうちの 1 つである。
- idle
 - 
アイドル I/O 優先度で実行されているプログラムは、
定義された猶予期間に他のプログラムがディスク I/O を要求しなかった場合にのみ、
ディスク時間を取得する。
通常のシステムアクティビティについての、
アイドル I/O プロセスの影響は 0 になるだろう。
このスケジューリングクラスは優先度の引き数をとらない。
現在のところ、(カーネル 2.6.25 以降で) このスケジューリングクラスは、
通常ユーザーに許可されている。
 - best-effort
 - 
これは効率的なスケジューリングクラスで、特定の I/O 優先度を要求しない
プロセスのためのものである。
このクラスは優先度の引き数 0-7 をとり、小さい数ほど高い優先度になる。
同じベストエフォート優先度で実行されているプログラムは、
ラウンドロビン方式で I/O が提供される。
カーネル 2.6.26 以前では、I/O 優先度を要求しないプロセスは、
正式にはスケジューリングクラスとして "none" を使うが、
I/O スケジューラはこのようなプロセスをベストエフォートクラスに
あるかのように扱う点に注意すること。
ベストエフォートクラスでの優先度は、プロセスの CPU nice レベルから
動的に計算される: io_priority = (cpu_nice + 20) / 5.
CFQ I/O スケジューラを持つカーネル 2.6.26 以降では、
I/O 優先度を要求しないプロセスは、その CPU スケジューリングクラスを継承する。
I/O 優先度はプロセスの CPU nice レベルから計算される
(カーネル 2.6.26 以前と同じ)。
 - realtime
 - 
リアルタイムスケジューリングクラスが指定されると、
システムで何が行われているかに関わらず、ディスクに最初に
アクセスする。
リアルタイムクラスは、他のプロセスをに飢餓状態 (starve) にしてしまうので、
注意して使う必要がある。
ベストエフォートクラスと同様に、指定されたプロセスが、
各スケジューリングウィンドウにおいて、どれだけのタイムスライスを
受けとるかについて、8 つの優先度レベルが定義される。
このスケジューリングクラスは、通常ユーザー (つまり、root 以外) には許可されていない。
 
 
オプション
- -c, --class class
 - 
使用するスケジューリングクラスの名前、または番号を指定する:
0 は none、1 は realtime、2 は best-effort、
3 は idle である。
 - -n, --classdata level
 - 
スケジューリングクラスのデータを指定する。
これはクラスが引き数を受け付ける場合にのみ有効である。
realtime と best-effort クラスでは、0-7 が有効なデータ
(優先度レベル) であり、0 が最高の優先度レベルを表す。
 - -p, --pid PID...
 - 
スケジューリングパラメータを取得または設定する実行中プロセスの
プロセス ID を指定する。
 - -P, --pgid PGID...
 - 
スケジューリングパラメータを取得または設定する実行中プロセスの
プロセスグループ ID を指定する。
 - -t, --ignore
 - 
要求された優先度の設定に失敗した場合に無視する。
command が指定されている場合、
要求したスケジューリング優先度に設定できない場合でも、コマンドを
実行する。
これは、権限が不十分な場合や、カーネルバージョンが古い場合に
起こる可能性がある。
 - -h, --help
 - 
ヘルプを表示して、終了する。
 - -u, --uid UID...
 - 
スケジューリングパラメータを取得または設定する実行中プロセスの
ユーザー ID を指定する。
 - -V, --version
 - 
バージョン情報を表示して、終了する。
 
 
例
- # ionice -c 3 -p 89
 - 
 - 
 - 
PID 89 のプロセスを、idle I/O プロセスに設定する。
 - # ionice -c 2 -n 0 bash
 - 
 - 
 - 
'bash' を最高優先度の best-effort プログラムとして実行する。
 - # ionice -p 89 91
 - 
 - 
 - 
PID 89 と 91 のプロセスのクラスと優先度を表示する。
 
 
注意
Linux は、2.6.13 以降の CFQ I/O スケジューラで、
I/O スケジューリングの優先度とクラスをサポートしている。
 
著者
Jens Axboe <jens@axboe.dk>
Karel Zak <kzak@redhat.com>
 
関連項目
ioprio_set(2)
 
入手方法
ionice コマンドは util-linux パッケージの一部であり、
https://www.kernel.org/pub/linux/utils/util-linux/
から入手できる。
 Index
- 名前
 - 
 - 書式
 - 
 - 説明
 - 
 - オプション
 - 
 - 例
 - 
 - 注意
 - 
 - 著者
 - 
 - 関連項目
 - 
 - 入手方法
 - 
 
This document was created by
man2html,
using the manual pages.
Time: 14:17:34 GMT, April 09, 2020