Sun Cluster のシステム管理 (Solaris OS 版)

Procedure専用のプロセッサセットを使用して非大域ゾーンの CPU 使用率を制御する

リソースグループを専用のプロセッサセットで実行させる場合は、この手順を実行します。

リソースグループが専用のプロセッサセットで実行するよう構成されている場合、Sun Cluster ソフトウェアは、非大域ゾーンのリソースグループのリソースを起動する際に、次の作業を実行します。

  1. システムのスケジューラを、公平配分スケジューラ (FSS) に設定します。


    # dispadmin -d FSS
    

    次の再起動時に、FSS がデフォルトのスケジューラになります。この構成をすぐに有効にするには、priocntl コマンドを使用します。


    # priocntl -s -C FSS
    

    priocntl コマンドと dispadmin コマンドを組み合わせて使用することで、FSS がすぐにデフォルトのスケジューラになり、再起動後もそのままになります。スケジューリングクラスの設定の詳細については、dispadmin(1M) および priocntl(1) のマニュアルページを参照してください。


    注 –

    FSS がデフォルトのスケジューラでない場合、CPU シェアの割り当ては有効になりません。


  2. 各ノードで CPU 制御を使用するため、大域ゾーンのシェア数と、デフォルトのプロセッサセットで使用可能な CPU の最小数を構成します。

    これらのパラメータを設定することで、大域ゾーンで動作中のプロセスを、非大域ゾーンで動作中のプロセスと CPU を獲得する際に発生する競合から保護します。globalzoneshares および defaultpsetmin プロパティーに値を割り当てないと、これらのプロパティーはデフォルト値をとります。


    # clnode set  [-p globalzoneshares=integer] \
    [-p defaultpsetmin=integer] \
    node
    
    -p defaultpsetmin=defaultpsetmininteger

    デフォルトのプロセッサセットで利用可能な CPU の最小数を設定します。デフォルトは 1 です。

    -p globalzoneshares=integer

    大域ゾーンに割り当てられるシェアの数を設定します。デフォルトは 1 です。

    node

    プロパティーを設定するノードを指定します。

    これらのプロパティーを設定する際には、大域ゾーンのプロパティーを設定しています。

  3. これらのプロパティーを正しく設定したことを確認します。


    # clnode show node
    

    指定するノードに対して、clnode コマンドは、設定されているプロパティー、およびこれらのプロパティーに設定されている値を出力します。clnode を使用して CPU 制御プロパティーを設定しないと、これらはデフォルト値をとります。

  4. CPU 制御機能を構成します。


    # clresourcegroup create -p RG_SLM_TYPE=automated \
     [-p RG_SLM_CPU_SHARES=value] \
    -p -y RG_SLM_PSET_TYPE=value \
    [-p RG_SLM_PSET_MIN=value] resource_group_name
    
    -p RG_SLM_TYPE=automated

    CPU 制御の使用状況を管理できるようにし、システム資源管理用に Solaris OS を設定する手順の一部を自動化します。

    -p RG_SLM_CPU_SHARES=value

    リソースグループ固有のプロジェクトに割り当てられる CPU シェア project.cpu-shares の数を指定し、非大域ゾーンに割り当てられている CPU シェア zone.cpu-shares) の数とプロセッサセット内のプロセッサの最大数を判別します。

    -p RG_SLM_PSET_TYPE=value

    専用のプロセッサセットの作成を可能にします。専用のプロセッサセットを使用するには、このプロパティーを strong または weak に設定します。値 strongweak は相互に排他的です。つまり、同じゾーン内のリソースグループを、strongweak が混在するように構成することはできません。

    -p RG_SLM_PSET_MIN=value

    プロセッサセット内のプロセッサの最小数を判別します。

    resource_group_name

    リソースグループの名前を指定します。

    このステップによりリソースグループが作成されます。また、clresourcegroup set コマンドを使用して既存のリソースグループを変更することもできます。

    デフォルトのプール以外のプールがゾーン構成内にある場合、またはゾーンがデフォルトのプール以外のプールに動的にバインドされている場合、非大域ゾーンで RG_SLM_TYPEautomated に設定することはできません。ゾーン構成とプールのバインディングについては、それぞれ zonecfg(1M)poolbind(1M) のマニュアルページを参照してください。ゾーン構成を次のように表示します。


    # zonecfg -z zone_name info pool
    

    注 –

    HAStoragePlusLogicalHostname リソースなどのリソースは、非大域ゾーンで起動するように構成されていても、GLOBAL_ZONE プロパティーが TRUE に設定されている場合は、大域ゾーンで起動されます。 RG_SLM_TYPE プロパティーを automated に設定した場合であっても、このリソースは CPU シェアと専用のプロセッサセット構成の恩恵を受けることはなく、RG_SLM_TYPE が手動に設定されているリソースグループと同様に扱われます。


  5. 構成の変更を有効にします。

    resource_group_name

    リソースグループの名前を指定します。


    注 –

    SCSLM_resource_group_name プロジェクトは削除または変更しないでください。手動で、たとえば project.max-lwps プロパティーを構成することにより、プロジェクトにさらにリソース制御を追加できます。詳細は、projmod(1M) のマニュアルページを参照してください。


    リソースグループがオンラインの間に RG_SLM_CPU_SHARESRG_SLM_PSET_MIN に行われた変更は、動的に考慮されます。しかし、RG_SLM_PSET_TYPEstrong が設定されている場合、および、変更を受け入れるための CPU が十分に存在しない場合、RG_SLM_PSET_MIN に要求された変更は適用されません。この場合は、警告メッセージが表示されます。次回のスイッチオーバーでは、RG_SLM_PSET_MIN に対して構成した値を受け入れる十分な CPU が使用できない場合、不十分な CPU 数によるエラーが発生する可能性があります。

    オンラインリソースグループが、非大域ゾーン内の CPU 制御に対して設定されなくなった場合、非大域ゾーンの CPU シェア値は zone.cpu-shares の値をとります。このパラメータの値はデフォルトで 1 です。