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