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