プロセススケジューリングの調整

Red Hat Enterprise LinuxBeginner
オンラインで実践に進む

はじめに

このチャレンジでは、Linux システムにおけるプロセススケジューリングの管理方法について学習します。プロセススケジューリングは、どのプロセスがどのくらいの時間 CPU を使用できるかを決定するオペレーティングシステムの重要な機能です。システム管理者として、プロセスの優先度を調整することで、このスケジューリングに影響を与えることができます。ここでは、nice および renice コマンドを使用してプロセスの優先度を制御する方法を学びます。これは、システムパフォーマンスを最適化し、重要なアプリケーションに必要なリソースを確実に割り当てるための基本的なスキルです。

カスタム優先度でプロセスを開始する

Linux では、すべてのプロセスが「nice 値(ナイス値)」を持っており、これがスケジューリングの優先度に影響を与えます。この値は -20(最高優先度)から 19(最低優先度)の範囲で設定されます。nice コマンドを使用すると、指定した nice 値で新しいコマンドを実行できます。なお、プロセスの優先度を上げるために負の nice 値を設定できるのは、root ユーザー(または sudo 権限を持つユーザー)のみであることに注意してください。

タスク

  • nice コマンドを使用して、新しい sleep 600 プロセスをバックグラウンドで開始してください。
  • 新しいプロセスに、nice 値 -10 の高い優先度を割り当ててください。
  • ps コマンドを使用して、新しいプロセスの優先度を確認してください。

要件

  • 実行するコマンドは sleep 600 です。
  • プロセスは nice 値 -10 で開始する必要があります。
  • 負の nice 値を割り当てるには sudo を使用する必要があります。
  • ターミナルを引き続き使用できるように、プロセスはバックグラウンドで実行してください。

プロセスを開始した後、ps -e -o pid,ni,comm | grep sleep の出力結果で、sleep プロセスの NI(nice 値)が -10 になっていることを確認します。PID(プロセス ID)は実行環境によって異なります。

ps -e -o pid,ni,comm | grep sleep
   2250 -10 sleep

また、ps -e -o pid,ni,comm を使用して、すべてのプロセスとその nice 値を表示することもできます。

  PID  NI COMMAND
    1   0 systemd
 2188   0 bash
 2250 -10 sleep

renice を使用して実行中のプロセスの優先度を調整する

すでに実行されているプロセスの優先度を変更する必要がある場合があります。その場合は renice コマンドを使用します。nice と同様に、優先度を上げる(より低い、またはより大きな負の nice 値を設定する)には sudo 権限が必要です。また、root などの他のユーザーが所有するプロセスの優先度を変更する場合も sudo が必要です。

タスク

  • 前のステップで開始した sleep 600 プロセスのプロセス ID(PID)を特定してください。
  • renice コマンドを使用して、その優先度を低い優先度(nice 値 5)に変更してください。
  • ps コマンドを使用して、新しい優先度レベルを確認してください。

要件

  • 対象となるプロセスは、前のステップで作成した sleep 600 プロセスです。
  • 新しい nice 値は 5 に設定してください。
  • プロセスの優先度を変更するには sudo を使用する必要があります(プロセスが sudo で開始され、root 所有であるため)。

renice コマンドを実行した後、ps -e -o pid,ni,comm | grep sleep の出力で、sleep プロセスの新しい NI 値が 5 になっていることを確認します。

ps -e -o pid,ni,comm | grep sleep
   2250   5 sleep

また、ps -e -o pid,ni,comm を使用してすべてのプロセスを確認できます。

  PID  NI COMMAND
    1   0 systemd
 2188   0 bash
 2250   5 sleep

まとめ

このチャレンジでは、Linux システムにおけるプロセススケジューリングの優先度を調整する基本を学びました。nice コマンドを使用して特定の優先度で新しいプロセスを起動する方法と、renice コマンドを使用して実行中のプロセスの優先度を変更する方法を実践しました。また、プロセスの優先度を上げる(負の nice 値を設定する)には管理者権限(sudo)が必要であることも学びました。これらのスキルは、システム管理やパフォーマンスチューニングにおいて不可欠なものです。

✨ 解答を確認して練習✨ 解答を確認して練習