Solaris のシステム管理 (資源管理とネットワークサービス)

プール構成の作成

構成ファイルには、システム上で作成されるプールに関する記述が含まれます。構成ファイルには、操作可能な構成要素と、そのリソースタイプが記述されています。

種類 

説明 

pset

プロセッサセット資源 

pool

資源の対応付けを示す名前付きの集合 

system

マシンレベルの実体 

操作可能な構成要素については、poolcfg(1M) を参照してください。

構成ファイル /etc/pooladm.conf は、次の 2 つの方法で作成できます。

poolcfg または libpool を使用して、/etc/pooladm.conf ファイルを変更します。このファイルを直接編集しないでください。

検出によって構成を作成する方法

/usr/sbin/poolcfg コマンドの -c オプションに discover を指定して、プール構成ファイルを作成します。作成される /etc/pooladm.conf ファイルには、既存のプロセッサセットが含まれます。

  1. スーパーユーザーになります。

  2. 次のコマンドを入力します。


    # poolcfg -c discover
    

デフォルトのファイル名 /etc/pooladm.conf を使用する代わりに別のファイル名を指定することもできます。別のファイル名を指定すると、poolcfg コマンドは指定した別のファイルに対して実行されます。

たとえば、検出された構成を /tmp/foo ファイルに記録するには、次の手順に従います。

  1. スーパーユーザーになります。

  2. 次のコマンドを入力します。


    # poolcfg -c discover /tmp/foo
    

新しい構成を作成する方法

/usr/sbin/poolcfg コマンドの -c オプションの引数に create を指定して、tester というシステムに簡単な構成ファイルを作成します。-c オプションの引数に空白が含まれている場合は、引用符で囲んでください。

  1. スーパーユーザーになります。

  2. 次のコマンドを入力します。


    # poolcfg -c 'create system tester'
    
  3. 構成ファイルの内容を読みやすい形式で表示します。


    # poolcfg -c info
    system tester
            int system.version 1
            boolean system.bind-default true
            string system.comment

構成の変更方法

単純な構成を拡張するには、batch というプロセッサセットと batch というプールを作成して、両者を対応付けて結合します。-c オプションの引数に空白が含まれている場合は、引用符で囲んでください。

  1. スーパーユーザーになります。

  2. batch というプロセッサセットを作成します。


    # poolcfg -c 'create pset batch (uint pset.min = 2; uint pset.max = 10)'
    
  3. batch というプールを作成します。


    # poolcfg -c 'create pool batch'
    
  4. プロセッサセットとプールを対応付けて結合します。


    # poolcfg -c 'associate pool batch (pset batch)'
    
  5. 対応付けた後の構成を表示します。


    # poolcfg -c info
    system tester
            int system.version 1
            boolean system.bind-default true
            string system.comment
    
            pool batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    pset batch
    
            pset batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0

プールをスケジューリングクラスに対応付ける方法

プールをスケジューリングクラスに対応付けることで、プールに結合されているすべてのプロセスがこのスケジューラを使用できるようになります。このためには、pool.scheduler プロパティにスケジューリングクラスの名前を設定します。次の例は、batch というプールを FSS に対応付ける方法を示します。

  1. スーパーユーザーになります。

  2. batch プールを変更して、FSS に対応付けます。


    # poolcfg -c 'modify pool batch (string pool.scheduler="FSS")'
    
  3. 対応付けた後の構成を表示します。


    # poolcfg -c info
    system tester
            int system.version 1
            boolean system.bind-default true
            string system.comment
    
            pool batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0

poolcfg でコマンドファイルを使用する方法

poolcfg -f を使用すると、poolcfg コマンドの -c オプションに指定する引数をテキストファイルから入力できます。この手法は、一連の操作を 1 つずつ実行する場合に使用します。複数のコマンドを処理した場合でも、それらのコマンドがすべて正常に終了するまで、構成は更新されません。特に大規模な構成や複雑な構成の場合は、この手法を使用した方が、個々のサブコマンドを起動するよりも便利です。

  1. 入力ファイルを作成します。


    $ cat> poolcmds.txt
    create system tester
    create pset batch (uint pset.min = 2; uint pset.max = 10)
    create pool batch
    associate pool batch (pset batch)
    
  2. スーパーユーザーになります。

  3. 次のコマンドを入力します。


    # /usr/sbin/poolcfg -f poolcmds.txt