Unixコマンド/nice

nice

dokuwiki.fl8.jp掲載済

機能

niceコマンドは、指定したコマンドを実行する際に、指定された優先順位で実行します。
実行するコマンドの重要度、優先度によってコマンドの優先度を変更し、限られた資源を重要な、
あるいは緊急度の高いコマンドから優先的に配分できます。
いくらUNIXがマルチタスクといっても、その処理能力には限界があり、多くのプロセスを実行すれば、
それだけ個々のプロセスの実行速度は低下します。
そこで、すぐには処理が終了しなくてもよいコマンドの優先順位を下げてバックグラウンドで実行すると
バックグラウンドで実行するコマンドが終わるまでフォアグラウンドで実行しているコマンドの応答性など
を向上させることができます。

構文

nice [オプション] [コマンド]

オプション

nice値     指定されたnice値でコマンドを実行する。(FreeBSD)
-n nice値  指定されたnice値でコマンドを実行する。(Solaris、Linux)

コマンド例

▼プロセスの優先順位を下げる(一般ユーザ)

$ nice +5 find / -name hoge -print &        5低いnice値(低い優先度)でfindコマンドを実行する。
[1] 7994
$ ps l -p 7994
UID   PID  PPID CPU PRI NI   VSZ  RSS WCHAN  STAT  TT       TIME COMMAND
1003 7994  7647   5  -6  5   360  624 biowai DN    p0    0:00.32 / (find)
NI=nice値が5低くなっている。

▼プロセスの優先順位を上げる(一般ユーザ)

$ nice -5 find / -name hoge -print &        5高いnice値(低い優先度)でfindコマンドを実行する。
[1] 7994
$ ps l -p 7994
UID   PID  PPID CPU PRI NI   VSZ  RSS WCHAN  STAT  TT       TIME COMMAND
1003 7994  7647   1  -6  0   360  624 biowai D     p0    0:00.55 / (find)
NI=nice値が一般ユーザなので高くできない。

▼プロセスの優先順位を上げる(スーパーユーザ)

# nice -5 find / -name hoge -print &
[1] 7992
# ps l -p 7992
UID   PID  PPID CPU PRI NI   VSZ  RSS WCHAN  STAT  TT       TIME COMMAND
  0  7992  7959 259  82 -5   360  608 -      R<    p0    0:00.55 / (find)
NI=nice値がスーパーユーザなので高いnice値で実行された。