at_shiita.ishigaki
2022年1月31日 9時23分
プロセス実行時に優先度を変更するにはniceコマンドを使用します。
プロセスの優先度であるnice値は-20~19に指定することができ、値が小さいほど優先度が高くなります。
nice値を確認するには、/proc/プロセスID/stat ファイルから確認する方法や、psコマンド等を使用して確認する方法があります。
sleepコマンドを実行した時のnice値を表示する方法を以下に示します。
[armadillo ~]# sleep 100&
[1] 12925
/proc/プロセスID/stat から確認する方法(※空白区切りで19番目の値がnice値となります)
[armadillo ~]# cat /proc/12925/stat | cut -d " " -f 19
0
psコマンドから確認する方法(※NIの値がnice値となります)
[armadillo ~]# ps -l 12925
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 12925 848 0 80 0 - 340 hrtime ttymxc2 0:00 sleep 100
niceコマンドを使用せずにプロセスを実行した場合nice値は0となり、niceコマンドを使用した場合nice値は10となります。
※ここでは例として、sleep 100のコマンドを実行した時のnice値を変更して確認します。
[armadillo ~]# sleep 100&
[1] 1904
[armadillo ~]# cat /proc/1904/stat | cut -d " " -f 19
0
[armadillo ~]# nice sleep 100&
[2] 1287
[armadillo ~]# cat /proc/1287/stat | cut -d " " -f 19
10
nice値を指定する場合は-nオプションを使用します。
※ここでは例として、nice値を19に指定します。
[armadillo ~]# nice -n 19 sleep 100&
[1] 6126
[armadillo ~]# cat /proc/6126/stat | cut -d " " -f 19
19
実行中のプロセスのnice値を変更するにはreniceコマンドを使用します。
※ここでは例として、実行開始時のnice値を19に設定し、実行後にnice値を-20に設定します。
[armadillo ~]# nice -n 19 sleep 100&
[5] 7086
[armadillo ~]# cat /proc/7086/stat | cut -d " " -f 19
19
[armadillo ~]# renice -20 -p 7086
7086 (process ID) old priority 19, new priority -20
[armadillo ~]# cat /proc/7086/stat | cut -d " " -f 19
-20