8. ニース値

複数のアプリケーションをコンピューターで実行すると、すべてが同時に実行されているように見えます。実際には、CPU はそれらの間を高速に切り替え、各プロセスに短い処理時間を与えています。

CPU がプロセスを管理する方法

各プロセスには、「タイムスライス」と呼ばれる短い CPU 時間が割り当てられます。タイムスライスが終了すると、プロセスは一時停止され、CPU は次のプロセスに移動します。デフォルトでは、Linux カーネルはプロセスをラウンドロビン方式でスケジューリングし、すべてのプロセスが完了するまで CPU 時間を公平に受け取るようにします。カーネルのスケジューラは、これらの高速な切り替えを管理する上で非常に効率的です。

Linux におけるニース(Niceness)とは

プロセスは CPU 時間を直接制御できませんが、カーネルのスケジューリング決定に影響を与えることができます。これは、プロセスのlinux niceness値を調整することによって行われます。「ニース(niceness)」という用語は、システム上の他のプロセスに対してプロセスがどれだけ「丁寧(nice)」であるかを示します。

プロセスのニースは、-20(最高優先度)から 19(最低優先度)までの数値で表されます。

  • 高いニース値(例:19)は、プロセスが非常に「丁寧」であり、優先度が低く、他のプロセスに CPU 時間を譲ることを意味します。
  • 低いまたは負のニース値(例:-20)は、プロセスが「丁寧」ではなく、より多くの CPU 時間を要求し、より高い優先度を持つことを意味します。

効果的にシステムリソースを管理するには、linux process nicenessを理解することが重要です。

プロセス優先度の調整

実行中のプロセスの現在のニースレベルは、topコマンドを使用して確認できます。NI列を探すと、ニース値が表示されます。

top

niceness linux値を制御するには、niceコマンドとreniceコマンドを使用できます。

niceコマンドを使用して、特定のニースレベルで新しいプロセスを開始します。たとえば、次のコマンドはニースを 5 に設定してapt upgradeを開始します。

nice -n 5 apt upgrade

すでに実行中のプロセスの優先度を変更するには、reniceコマンドを使用します。次のコマンドは、PID 3245 のプロセスのニースを 10 に変更します。

renice 10 -p 3245

ログインして学習進捗を保存

サインイン

演習

Linux プロセス管理とスケジューリングの理解を深めるために、この実践的なラボで知識を適用してください。

  1. Linux プロセスの管理と監視 - フォアグラウンドおよびバックグラウンドプロセスとの対話、psを使用した検査、topを使用したリソースの監視、reniceを使用した優先度の調整、killを使用した終了を練習します。

このラボは、プロセススケジューリングとニースの概念を実際のシナリオに適用し、Linux でのプロセス管理に対する自信を構築するのに役立ちます。

クイズ

プロセスがより多くの CPU 優先度を得るようにするには、より低いニース番号を使用する必要がありますか、それともより高いニース番号を使用する必要がありますか?単一の英単語で、すべて小文字で回答してください。