非大域ゾーンのリソースグループに対して CPU シェアを割り当てたいが、専用のプロセッサセットを作成する必要がない場合は、この手順を実行します。
リソースグループに CPU シェアが割り当てられている場合、Sun Cluster は、非大域ゾーンのそのリソースグループのリソースを起動する際に、次の作業を実行します。
SCSLM_resource_group_name という名前のプールを作成します (まだ行われていない場合)。
SCSLM_pool_zone_name プールを、デフォルトのプロセッサセットに関連付けます。
非大域ゾーンを SCSLM_poolzone_name プールに動的にバインドします。
非大域ゾーンに割り当てられている CPU シェア (zone.cpu-shares) の数を、指定された CPU シェアの数だけ増やします (まだ行われていない場合)。
非大域ゾーンに SCSLM_resourcegroup_name という名前のプロジェクトを作成します (まだ行われていない場合)。このプロジェクトはリソースグループに固有で、指定された数の CPU シェア (project.cpu-shares ) が割り当てられます。
SCSLM_resourcegroup_name プロジェクトのリソースを起動する。
CPU 制御機能の構成の詳細については、rg_properties(5) のマニュアルページを参照してください。
システムのデフォルトのスケジューラを、公平配分スケジューラ (FSS) に設定します。
# dispadmin -d FSS |
次の再起動時に、FSS がデフォルトのスケジューラになります。この構成をすぐに有効にするには、priocntl コマンドを使用します。
# priocntl -s -C FSS |
priocntl コマンドと dispadmin コマンドを組み合わせて使用することで、FSS がすぐにデフォルトのスケジューラになり、再起動後もそのままになります。スケジューリングクラスの設定の詳細については、dispadmin(1M) および priocntl(1) のマニュアルページを参照してください。
FSS がデフォルトのスケジューラでない場合、CPU シェアの割り当ては有効になりません。
各ノードで CPU 制御を使用するため、大域ゾーンのシェア数と、デフォルトのプロセッサセットで使用可能な CPU の最小数を構成します。
これらのパラメータを設定することで、大域ゾーンで動作中のプロセスを、非大域ゾーンで動作中のプロセスと CPU を獲得する際に発生する競合から保護します。globalzoneshares および defaultpsetmin プロパティーに値を割り当てないと、これらのプロパティーはデフォルト値をとります。
# clnode set [-p globalzoneshares=integer] \ [-p defaultpsetmin=integer] \ node |
大域ゾーンに割り当てられるシェアの数を設定します。デフォルト値は 1 です。
デフォルトのプロセッサセットで利用可能な CPU の最小数を設定します。デフォルト値は 1 です。
プロパティーを設定するノードを指定します。
これらのプロパティーを設定する際には、大域ゾーンのプロパティーを設定しています。
これらのプロパティーを正しく設定したことを確認します。
# clnode show node |
指定するノードに対して、clnode コマンドは、設定されているプロパティー、およびこれらのプロパティーに設定されている値を出力します。clnode を使用して CPU 制御プロパティーを設定しないと、これらはデフォルト値をとります。
CPU 制御機能を構成します。
# clresourcegroup create -p RG_SLM_TYPE=automated \ [-p RG_SLM_CPU_SHARES=value] resource_group_name |
CPU の使用状況を管理できるようにし、システム資源管理用に Solaris OS を設定する手順の一部を自動化します。
リソースグループ固有のプロジェクトに割り当てられる CPU シェア project.cpu-shares の数を指定し、非大域ゾーンに割り当てられている CPU シェア zone.cpu_shares の数を判別します。
リソースグループの名前を指定します。
このステップによりリソースグループが作成されます。また、clresourcegroup set コマンドを使用して既存のリソースグループを変更することもできます。
デフォルトのプール以外のプールがゾーン構成内にある場合、またはゾーンがデフォルトのプール以外のプールに動的にバインドされている場合、非大域ゾーンで RG_SLM_TYPE を automated に設定することはできません。ゾーン構成とプールのバインディングについては、それぞれ zonecfg(1M) と poolbind(1M) のマニュアルページを参照してください。ゾーン構成を次のように表示します。
# zonecfg -z zone_name info pool |
HAStoragePlus や LogicalHostname リソースなどのリソースは、非大域ゾーンで起動するように構成されていても、GLOBAL_ZONE プロパティーが TRUE に設定されている場合は、大域ゾーンで起動されます。 RG_SLM_TYPE プロパティーを automated に設定した場合であっても、このリソースは CPU シェア構成の恩恵を受けることはなく、RG_SLM_TYPE が手動に設定されているリソースグループと同様に扱われます。
この手順では、RG_SLM_PSET_TYPE プロパティーは設定しません。Sun Cluster はデフォルトのプロセッサセットを使用します。
構成の変更を有効にします。
# clresourcegroup online -M resource_group_name |
リソースグループの名前を指定します。
RG_SLM_PSET_TYPE に default を設定すると、 Sun Cluster はプール SCSLM_pool_zone_name を作成しますが、プロセッサセットは作成しません。この場合、SCSLM_pool_zone_name はデフォルトのプロセッサセットに関連付けられます。
オンラインリソースグループが、非大域ゾーン内の CPU 制御に対して設定されなくなった場合、非大域ゾーンの CPU シェア値はゾーン構成内の zone.cpu-shares の値をとります。このパラメータの値はデフォルトで 1 です。ゾーン構成の詳細は、zonecfg(1M) のマニュアルページを参照してください。
SCSLM_resource_group_name プロジェクトは削除または変更しないでください。手動で、たとえば project.max-lwps プロパティーを構成することにより、プロジェクトにさらにリソース制御を追加できます。詳細は、projmod(1M) のマニュアルページを参照してください。