このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】nice値を変更する:reniceコマンド
reniceコマンドの概要
renice
コマンドは、既に実行されているプロセスのnice値(優先度)を変更するためのコマンドです。nice
コマンドで設定されたプロセスの優先度を動的に変更することができます。注意点として、一般ユーザーが優先度を高くする、つまり、nice値をもとの値より小さくしようとすると、エラーとなります。
【構文】renice [-n] コマンド [オプション]
※「-n」は省略可能
主なオプションと説明
オプション | 説明 |
---|---|
-p PID | 指定したプロセスID(PID)のnice値を変更します。 |
-u ユーザー名 | 指定したユーザーのすべてのプロセスのnice値を変更します。 |
nice値について
nice値の範囲 | 説明 |
---|---|
-20 | 最も高い優先度を示します。 |
0 | デフォルトのnice値です。 |
19 | 最も低い優先度を示します。 |
変更可能なユーザー | マイナスのnice値はrootユーザーのみが設定可能です。 |
コマンドの使用例と解説
1.nice値5でコマンドを実行
・「nice -n 5 sleep 1000 &
」コマンドを実行します。
「sleep」コマンドをバックグラウンドで実行します。niceコマンドでnice値5を指定します。
user01@ubuntu-vm:~$ nice -n 5 sleep 1000 &
[1] 3087
2.プロセスの優先度の確認
・「ps -lC sleep
」コマンドを実行します。
起動したsleepプロセスのPRI値とnice値を確認します。
user01@ubuntu-vm:~$ ps -lC sleep
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 3087 3073 0 85 5 - 2355 hrtime pts/0 00:00:00 sleep
3.特定のプロセスのnice値を変更
・「renice -n 15 -p 3087
」コマンドを実行します。
プロセスIDが3087のプロセスのnice値を15に変更します。プロセスIDは、実行環境で異なります。
user01@ubuntu-vm:~$ renice -n 15 -p 3087
3087 (process ID) 従来の優先順位は 5 で, 新しい優先順位は 15 です
4.変更したプロセスの優先度の確認
・「ps -lC sleep
」コマンドを実行します。
変更したsleepプロセスのPRI値とnice値を確認します。nice値が15に変更され、PRI値が95になっていることが確認できます。
user01@ubuntu-vm:~$ ps -lC sleep
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 3087 3073 0 95 15 - 2355 hrtime pts/0 00:00:00 sleep
5.sleepプロセスの終了
・「killall sleep
」コマンドを実行します。
起動したすべてのsleepプロセスを終了させます。
user01@ubuntu-vm:~$ killall sleep
[1]+ Terminated nice -n 5 sleep 1000
まとめ
renice
コマンドを使用することで、既に実行中のプロセスのnice値を動的に変更することができます。-p
オプションで特定のプロセスIDのnice値を変更したり、-u
オプションで特定のユーザーのすべてのプロセスのnice値を変更できます。マイナスのnice値はrootユーザーのみが設定可能であり、これによりプロセスの実行優先度を調整することで、システムのリソース配分を最適化できます。