niceコマンドの使い方をわかりやすく解説|プロセスの優先度を調整して効率的な実行を

Linuxを使っていると「CPUの使用率が高い」「重たいプロセスがほかの作業を邪魔してしまう」といった悩みに直面することがあります。そんなときに便利なのが、プロセスの優先度を調整できる「nice」コマンドです。
niceコマンドを使えば、特定のプロセスを「控えめ」に動かして、他のプロセスにリソースを譲ることができます。この記事では、niceの基本的な使い方から応用例、関連コマンドまで、実践的にわかりやすく解説します。


niceコマンドとは?

nice(ナイス)コマンドは、プロセスの実行優先度(nice値)を指定してプログラムを実行するためのコマンドです。
Linuxでは、プロセスごとに「実行優先度(スケジューリングの優先度)」があり、これによってどのプロセスがどれだけCPUを使うかが決まります。

この「優先度」は、-20(最も優先)~19(最も後回し)の範囲で指定されます。
niceを使うことで、指定した値で新しいプロセスを起動することができ、「他の重要な処理の邪魔をしない」ようにできます。


なぜniceを使うのか?

たとえば、動画のエンコードやバックアップ処理など、重い処理を行うスクリプトがあるとします。これを何も考えずに実行すると、CPUがその処理に取られてしまい、他の作業が重くなってしまうことがあります。

そんなときにniceを使って「このプロセスは他の処理が終わってからでいいよ」と優先度を下げることで、システム全体のパフォーマンスを保ったまま重い処理を進めることができます


基本的な使い方

書式

nice -n [nice値] コマンド [引数...]

たとえば、CPUをたくさん使うスクリプト heavy_task.sh を nice 値10で実行する場合は、以下のようになります。

nice -n 10 ./heavy_task.sh

-n オプションで指定する nice 値が大きいほど、CPUの優先度は低くなります。

デフォルトのnice値

何も指定しなかった場合は、デフォルトで nice 値 10 で実行されます。

nice ./heavy_task.sh

これは以下と同じ意味です:

nice -n 10 ./heavy_task.sh

nice値をマイナスにするにはsudoが必要

nice値を マイナス(優先度を上げる)方向に設定するには、root権限(またはsudo)が必要です。

たとえば、nice値 -5 でプログラムを実行したい場合は以下のようになります。

sudo nice -n -5 ./important_task.sh

通常のユーザーではマイナスのnice値は設定できないため、注意が必要です。


実行中のプロセスのnice値を確認する方法

実行中のプロセスのnice値を確認したい場合は、psコマンドやtopコマンドが使えます。

psコマンドの場合:

bashコピーする編集するps -o pid,ni,cmd -C プロセス名

例:

ps -o pid,ni,cmd -C python

このコマンドで、指定したプロセスのPID(プロセスID)、nice値、実行コマンドが確認できます。

topコマンドの場合:

top

topコマンドでは、NI列にnice値が表示されます。リアルタイムで確認できるので便利です。


実行中のプロセスのnice値を変更するには「renice」

既に動いているプロセスのnice値を変更したい場合は、reniceコマンドを使用します。

書式

renice [nice値] -p [PID]

例:

renice 15 -p 1234

これは、プロセスID 1234 の nice値を 15 に変更する例です。

なお、こちらも 優先度を上げる(nice値を下げる)場合はsudoが必要です。

sudo renice -5 -p 1234

実用例:niceでバックグラウンド処理を控えめに実行

バックアップスクリプトを控えめに実行したい場合:

nice -n 19 ./backup.sh &

ここで「&」を付けることでバックグラウンド実行になり、システムにあまり負荷をかけずに作業を進められます。

また、定期的な処理をcronで登録している場合も、以下のようにniceを活用することができます。

0 3 * * * nice -n 15 /home/user/scripts/daily_backup.sh

注意点とトラブル回避

  • niceで設定できるのは「相対的な」優先度であり、必ずしも他のプロセスより後に回るとは限らない
  • あまりにもnice値を高くすると、処理に非常に時間がかかることがある
  • root権限がないと、マイナス値での設定ができない

niceは便利な反面、正しく使わないと意図しない結果になる場合があります。値の調整は慎重に行いましょう。


まとめ

niceコマンドは、Linuxでのプロセス制御において非常に有効なツールです。
リソースを効率的に使いたい場面、他の処理を邪魔したくない場面、システム全体の安定性を保ちたいときにこそ、その真価を発揮します。

  • nice -n 値 コマンド で優先度を指定して実行
  • 実行中のプロセスには renice を使って変更可能
  • 高負荷な処理を控えめに実行するなら nice -n 19 などが有効

うまく活用して、賢く快適なLinuxライフを送りましょう!

タイトルとURLをコピーしました