このページで解説している内容は、以下の 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ユーザーのみが設定可能です。
nice値

コマンドの使用例と解説

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ユーザーのみが設定可能であり、これによりプロセスの実行優先度を調整することで、システムのリソース配分を最適化できます。