この章では、公平配分スケジューラ (FSS) の使用方法について説明します。
FSS の概要については、第 8 章公平配分スケジューラ (概要)を参照してください。ゾーンが使用されている場合のスケジューリングクラスの詳細については、「ゾーンのスケジューリングクラス」を参照してください。
タスク |
説明 |
参照先 |
---|---|---|
CPU 使用量を監視します。 |
プロジェクトの CPU 使用量およびプロセッサセット内のプロジェクトの CPU 使用量を監視します。 | |
デフォルトのスケジューラクラスを設定します。 |
FSS などのスケジューラをシステムのデフォルトスケジューラとして設定します。 | |
実行中のプロセスを、あるスケジューリングクラスから FSS クラスなどの別のスケジューリングクラスに移動します。 |
デフォルトのスケジューリングクラスの変更や再起動を行うことなく、あるスケジューリングクラスから別のスケジューリングクラスにプロセスを手動で移動します。 | |
すべての実行中のプロセスを、FSS クラスなどの別のスケジューリングクラスに移動します。 |
デフォルトのスケジューリングクラスの変更や再起動を行うことなく、すべてのスケジューリングクラスから別のスケジューリングクラスにプロセスを手動で移動します。 | |
プロジェクトのプロセスを、FSS クラスなどの別のスケジューリングクラスに移動します。 |
プロジェクトのプロセスを、現在のスケジューリングクラスから別のスケジューリングクラスに手動で移動します。 | |
FSS パラメータを調べ、調整します。 |
スケジューラのタイムクォンタムの値を調整します。「タイムクォンタム」とは、スレッドがプロセッサ上で実行を開始してからそのプロセッサを放棄するまでの時間量のことです。 |
prstat コマンド (prstat(1M) のマニュアルページを参照) を使用すると、アクティブなプロジェクトごとの CPU 使用量を監視できます。
タスク用の拡張アカウンティングデータを使用して、長期間使用される CPU 資源の合計量について、プロジェクトごとの統計情報を取得できます。詳細は、第 4 章拡張アカウンティング (概要)を参照してください。
1 つまたは複数のプロセッサセットについて、プロジェクトの CPU 使用量を監視するには、次のように入力します。
% prstat -J -C pset-list |
ここで pset-list は、プロセッサセット ID をコンマで区切って並べたリストです。
Solaris システムのほかのスケジューリングクラスで使用するものと同じコマンドを、FSS でも使用できます。スケジューラクラス、スケジューラの調整可能パラメータ、および個々のプロセスのプロパティーを構成できます。
svcadm restart を使用すると、スケジューラサービスを再起動することができます。詳細は、svcadm(1M) のマニュアルページを参照してください。
CPU 配分割り当てを有効にするには、FSS をシステムのデフォルトのスケジューラにする必要があります。
priocntl と dispadmin コマンドを組み合わせて使用することにより、FSS はただちにデフォルトのスケジューラになり、この設定は再起動後も有効です。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
システムのデフォルトのスケジューラが FSS になるように設定します。
# dispadmin -d FSS |
この変更指定は次の再起動で有効になります。再起動後は、システムのすべてのプロセスが FSS スケジューリングクラスで実行されます。
再起動を行わずに、この設定をただちに有効にします。
# priocntl -s -c FSS -i all |
デフォルトのスケジューリングクラスを変更した後で再起動しなくても、あるスケジューリングクラスから別のスケジューリングクラスにプロセスを手動で移動できます。次の手順は、TS スケジューリングクラスから FSS スケジューリングクラスにプロセスを手動で移動する方法を示しています。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
init プロセス (pid 1) を FSS スケジューリングクラスに移動します。
# priocntl -s -c FSS -i pid 1 |
すべてのプロセスを TS スケジューリングクラスから FSS スケジューリングクラスに移動します。
# priocntl -s -c FSS -i class TS |
すべてのプロセスは、再起動後には再び TS スケジューリングクラスで実行されます。
TS 以外のデフォルトのクラスを使用している場合、たとえば、デフォルトで IA クラスを使用するウィンドウ環境がシステムで実行されている場合があります。デフォルトのスケジューリングクラスを変更した後で再起動しなくても、すべてのプロセスを FSS スケジューリングクラスに手動で移動できます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
init プロセス (pid 1) を FSS スケジューリングクラスに移動します。
# priocntl -s -c FSS -i pid 1 |
すべてのプロセスを現在のスケジューリングクラスから FSS スケジューリングクラスに移動します。
# priocntl -s -c FSS -i all |
すべてのプロセスは、再起動後には再びデフォルトのスケジューリングクラスで実行されます。
プロジェクトのプロセスを、現在のスケジューリングクラスから FSS スケジューリングクラスに手動で移動できます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
プロジェクト ID 10 で実行するプロセスを FSS スケジューリングクラスに移動します。
# priocntl -s -c FSS -i projid 10 |
プロジェクトのプロセスは、再起動後には再びデフォルトのスケジューリングクラスで実行されます。
dispadmin コマンドを使用すると、システムの稼働中にプロセススケジューラパラメータを表示または変更できます。たとえば、dispadmin コマンドを使用して、FSS スケジューラのタイムクォンタム (time quantum) 値を調べ、調整できます。「タイムクォンタム」とは、スレッドがプロセッサ上で実行を開始してからそのプロセッサを放棄するまでの時間量のことです。
システムの稼働中に FSS スケジューラの現在のタイムクォンタムを表示するには、次のように入力します。
$ dispadmin -c FSS -g # # Fair Share Scheduler Configuration # RES=1000 # # Time Quantum # QUANTUM=110 |
-g オプションを使用するときに、同時に -r オプションも指定すると、タイムクォンタム値の表示に使用する最小単位を指定できます。最小単位を指定しないと、タイムクォンタム値はデフォルトのミリ秒で表示されます。
$ dispadmin -c FSS -g -r 100 # # Fair Share Scheduler Configuration # RES=100 # # Time Quantum # QUANTUM=11 |
FSS スケジューリングクラスにスケジューリングパラメータを設定するには、dispadmin -s を使用します。file 内の値は、-g オプションで得られる出力と同じ形式で指定する必要があります。これらの値は、カーネル内の現在の値を上書きします。次の行を入力します。
$ dispadmin -c FSS -s file |