niceコマンドはプロセスのナイス値(nice value または niceness)を変更します。
このナイス値は、どのプロセスがより多くのCPU時間を占有するかというCPUの処理優先度に関係します。
ナイス値とは
ナイス値はあるプロセスに対してのCPUの処理優先度に関係します。つまり、CPUがプロセスを処理していく際のどのプロセスに対してどのくらいの割合でCPU時間を割り当てていくかに関係します。
あるプロセスのナイス値を増加させるとCPUの処理優先度が低くなり、他のプロセスがより多くのCPU時間を得る(CPUのリソースを得る)ことができます。すなわち、システム内での他のプロセスにとっては、ナイス値を増加させたプロセスはリソースを配慮しているため、より親切であると考えられます。
また、ナイス値の範囲は-20(処理優先度が高い)~19(処理優先度が低い)になります。
そして、-20~-1までの負の範囲にナイス値を変更するには、管理者権限が必要になります。
niceコマンドの利用例
現在のナイス値の取得
niceコマンドを引数なしで使用すると、現在のナイス値を得ることができます。
コマンド例
1 |
nice |
実行結果
1 |
0 |
ナイス値を変更してコマンドを実行
(-nオプション)
-nオプションを用いて、ナイス値を指定して変更していくことができます。ナイス値は、現在のナイス値から指定したナイス値を増減していきます。また、-nオプションを用いらないでコマンドを使用した場合は、現在のナイス値に10を加算されます。また、ナイス値の上限以上または下限以下の数値は、ナイス値の上限または下限の数値になります。
コマンド例
1 |
nice -n2 nice |
実行結果
1 |
2 |
コマンド例
1 |
nice -n2 nice -n3 nice |
実行結果
1 |
5 |
コマンド例
1 |
nice nice |
実行結果
1 |
10 |
また、ナイス値はtopコマンドやpsコマンド等でも確認することができます。PRIが処理の優先度で、NIがナイス値になります。
コマンド例
1 |
nice sleep 100 & |
実行結果
1 2 3 4 5 |
$ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 2478 2469 0 80 0 - 5919 wait pts/8 00:00:00 bash 0 S 1000 3276 2478 0 90 10 - 2076 hrtime pts/8 00:00:00 sleep 0 R 1000 3280 2478 0 80 0 - 7482 - pts/8 00:00:00 ps |