はじめに
このチャレンジでは、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)が必要であることも学びました。これらのスキルは、システム管理やパフォーマンスチューニングにおいて不可欠なものです。



