Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Konfigurieren von Pools

ProcedureSo erstellen Sie eine statische Konfiguration

Geben Sie die Option -s für /usr/sbin/pooladm ein, um eine statische Konfigurationsdatei zu erstellen, die der aktuellen dynamischen Konfiguration entspricht. Sofern kein anderer Dateiname angegeben wurde, wird der standardmäßige Speicherort /etc/pooladm.conf verwendet.

Übernehmen Sie die Konfiguration mit dem Befehl pooladm und der Option -c. Dann geben Sie den Befehl pooladm mit der Option -s ein, um die statische Konfiguration so zu aktualisieren, dass sie dem Status der dynamischen Konfiguration entspricht.


Hinweis –

Das neue Funktionsmerkmal pooladm -s sollte dem älteren Befehl poolcfg -c discover zum Erstellen einer neuen Konfiguration, die der dynamischen Konfiguration entspricht, vorgezogen werden.


Bevor Sie beginnen

Aktivieren Sie die Pools auf dem System.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zu Rollen finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Aktualisieren Sie die statische Konfigurationsdatei so, dass sie der aktuellen dynamischen Konfiguration entspricht.


    # pooladm -s
    
  3. Zeigen Sie den Inhalt der Konfigurationsdatei in lesbarer Form an.

    Beachten Sie, dass die Konfiguration vom System erstellte Standardelemente enthält.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
  4. Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.


    # pooladm -c
    
  5. (Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:


    # pooladm -s /tmp/backup
    

ProcedureSo modifizieren Sie eine Konfiguration

Um die Konfiguration zu verbessern, erstellen Sie ein Prozessorset namens pset_batch und einen Pool namens pool_batch. Dann verbinden Sie Pool und Prozessorset über eine Zuordnung.

Denken Sie daran, dass Sie Unterbefehlsargumente mit Leerzeichen in Anführungszeichen stellen müssen.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zu Rollen finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Erstellen Sie das Prozessorset pset_batch.


    # poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
    
  3. Erstellen Sie den Pool pool_batch.


    # poolcfg -c 'create pool pool_batch'
    
  4. Verbinden Sie Pool und Prozessorset über eine Zuordnung.


    # poolcfg -c 'associate pool pool_batch (pset pset_batch)'
    
  5. Zeigen Sie die bearbeitete Konfiguration an.


    # poolcfg -c info
    system tester
            string  system.comment kernel state
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    pset pset_batch
    
            pset 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
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.


    # pooladm -c
    
  7. (Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:


    # pooladm -s /tmp/backup
    

ProcedureSo ordnen Sie einen Pool einer Scheduling-Klasse zu

Sie können einen Pool einer Scheduling-Klasse zuordnen, so dass alle an den Pool gebundenen Prozesse diesen Scheduler verwenden. Dazu setzen Sie die Eigenschaft pool.scheduler auf den Namen des Schedulers. Im folgenden Beispiel wird der Pool pool_batch dem Fair Share Scheduler (FSS) zugeordnet.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zum Erstellen der Rolle sowie zum Zuweisen einer Rolle zu einem Benutzer finden Sie unter „Managing RBAC (Task Map)“ im System Administration Guide: Security Services.

  2. Bearbeiten Sie den Pool pool_batch, um ihm dem FSS zuzuordnen.


    # poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
    
  3. Zeigen Sie die bearbeitete Konfiguration an.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset 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
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  4. Übernehmen Sie die Konfiguration unter /etc/pooladm.conf :


    # pooladm -c
    
  5. (Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:


    # pooladm -s /tmp/backup
    

ProcedureSo richten Sie Konfigurationseinschränkungen ein

Einschränkungen reduzieren die Anzahl möglicher Konfigurationen, indem sie einige potentielle Änderungen eliminieren, die an einer Konfiguration vorgenommen werden können. Im folgenden Verfahren wird gezeigt, wie Sie die Eigenschaft cpu.pinned einrichten.

In den folgenden Beispielen ist cpuid eine ganze Zahl.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zu Rollen finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Ändern Sie die Eigenschaft cpu.pinned in der statischen oder dynamischen Konfiguration:

    • Ändern Sie die Boot-Konfiguration (die statische Konfiguration) :


      # poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      
    • Ändern Sie die laufende (dynamische) Konfiguration, ohne die Boot-Konfiguration zu ändern:


      # poolcfg -dc 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      

ProcedureSo definieren Sie Konfigurationsziele

Sie können Ziele für poold angeben, die beim Durchführen von Korrekturmaßnahmen berücksichtigt werden sollen.

Im folgenden Verfahren ist das Ziel wt-load so gesetzt, dass poold versucht, die Ressourcenzuordnung an die Ressourcenauslastung anzupassen. Das Ziel locality ist deaktiviert, um das Erreichen dieses Konfigurationsziels zu unterstützen.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zu Rollen finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Ändern Sie das System tester, um das Ziel wt-load zu bevorzugen.


    # poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
    
  3. Deaktivieren Sie das Ziel locality für das standardmäßige Prozessorset.


    # poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'
    
  4. Deaktivieren Sie das Ziel locality für das Prozessorset pset_batch.


    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'
    
  5. Zeigen Sie die bearbeitete Konfiguration an.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
            string  system.poold.objectives wt-load
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset 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
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.


    # pooladm -c
    
  7. (Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:


    # pooladm -s /tmp/backup
    

ProcedureSo richten Sie die Protokollierungsebene für poold ein

Zum Festlegen der Protokollierungsebene für poold richten Sie die Eigenschaft system.poold.log-level in der poold-Konfiguration ein. Die poold-Konfiguration befindet sich in der libpool-Konfiguration. Weitere Informationen finden Sie unter poold-Protokollierungsinformationen und in den Manpages poolcfg(1M) und libpool(3LIB).

Sie können den Befehl poold auch an der Befehlszeile eingeben, um die Protokollierungsebene für poold festzulegen.

  1. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zu Rollen finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Legen Sie die Protokollierungsebene mit dem Befehl poold und der Option -l sowie einem Parameter, z. B. INFO fest.


    # /usr/lib/pool/poold -l INFO
    

    Informationen zu den verfügbaren Parametern finden Sie unter poold-Protokollierungsinformationen. Die standardmäßige Protokollierungsebene ist NOTICE.

ProcedureSo verwenden Sie Befehlsdateien mit poolcfg

Der Befehl poolcfg mit der Option -f kann eine Textdatei aufnehmen, die poolcfg-Unterbefehlsargumente für die Option -c enthält. Diese Methode eignet sich insbesondere dann, wenn Sie die durchzuführenden Vorgänge einrichten möchten. Bei der Verarbeitung von mehreren Befehlen wird die Konfiguration nur dann aktualisiert, wenn alle Befehle erfolgreich ausgeführt wurden. Bei großen oder komplexen Konfigurationen ist diese Technik eventuell besser geeignet als das Aufrufen einzelner Unterbefehle.

In Befehlsdateien kennzeichnet das #-Zeichen den Rest der Zeile als Kommentar.

  1. Erstellen Sie die Eingabedatei poolcmds.txt.


    $ cat > poolcmds.txt
    create system tester
    create pset pset_batch (uint pset.min = 2; uint pset.max = 10)
    create pool pool_batch
    associate pool pool_batch (pset pset_batch)
    
  2. Melden Sie sich als Superuser an oder nehmen Sie eine Rolle an, die das Process Management-Profil beinhaltet.

    Beispielsweise beinhaltet die Rolle des Systemadministrators das Process Management-Profil. Weitere Informationen zum Erstellen der Rolle sowie zum Zuweisen einer Rolle zu einem Benutzer finden Sie unter „Managing RBAC (Task Map)“ im System Administration Guide: Security Services.

  3. Führen Sie den folgenden Befehl aus:


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