【ナイス】
nice/renice(プロセス優先度) とは?
最終更新:
💡 CPUの譲り方を変える。使用量の上限とは別
LinuxなどでCPUの相対的なスケジューリングに影響するnice値を調整するコマンド。niceは起動時、reniceは実行中の対象に使います。CPU使用率の上限や、ほかのサービスへの影響の解消を保証するものではありません。
📌 このページのポイント
重い処理をほかにCPUを譲りながら動かせる?
GNU niceならnice -n 10 commandのように起動できるよ。現在のnice値に10を加える指定で、値が大きくなるほど通常のCPUの取り合いでは譲る側になる。実際に実行するコマンドへ置き換えて使うんだ。
10と指定するとnice値が必ず10?
実行中の処理にはどうする?
util-linuxならrenice --priority 15 --pid 1234でPID 1234のnice値を15にする。これは対象例なので実際のPIDを確認してね。niceの加算とreniceの設定値の違い、OSやコマンドの実装も確認するんだ。
マイナス値だけが管理者用?
優先度を上げる、つまりnice値を下げる操作には権限などの条件があるよ。19から10に戻す場合も優先度を上げる操作になる。一般ユーザーは通常、自分の対象のnice値を大きくできるけど、戻せるとは限らないんだ。
niceだけでサービスへの影響をなくせる?
もっと詳しく知りたい人へ
renice -nはnice -nと同じ加算?
util-linuxのrenice -nは通常は絶対値を設定しますが、POSIXLY_CORRECTがあると相対値になります。--priorityは絶対値、--relativeは相対値を明示できます。移植する場合は対象の実装のマニュアルを確認してください。Linuxではnice値はスレッドごとの属性でもあります。
📖 おまけ:英語の意味
「nice」 = 親切な・穏やかな
💬 値を大きくすると通常のCPUの取り合いでほかに譲る方向になる、という覚え方ができます。reniceは実行中の対象のnice値を変更するコマンドです。