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

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

非大域ゾーンのリソースグループに対して CPU シェアを割り当てたいが、専用のプロセッサセットを作成する必要がない場合は、この手順を実行します。

リソースグループに CPU シェアが割り当てられている場合、 Sun Cluster ソフトウェアは、非大域ゾーンのリソースグループの 1 つのリソースを起動する際に、次の作業を実行します。

CPU 制御機能の構成の詳細については、rg_properties(5) のマニュアルページを参照してください。

  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 globalzoneshares=integer

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

    -p defaultpsetmin=defaultpsetmininteger

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

    node

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

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

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


    # clnode show node
    

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

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


    # clresourcegroup create -p RG_SLM_TYPE=automated \
     [-p RG_SLM_CPU_SHARES=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 の数を判別します。

    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 が手動に設定されているリソースグループと同様に扱われます。


    この手順では、RG_SLM_PSET_TYPE プロパティーは設定しません。Sun Cluster はデフォルトのプロセッサセットを使用します。

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


    # clresourcegroup online -M resource_group_name
    
    resource_group_name

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

    RG_SLM_PSET_TYPEdefault を設定すると、 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) のマニュアルページを参照してください。