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