Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 13 Erstellen und Verwalten von Resource Pools (Vorgehen)

In diesem Kapitel wird das Einrichten und Verwalten von Resource Pools auf einem System beschrieben.

Eine Einführung in das Thema der Resource Pools finden Sie in Kapitel 12Einführung in Resource Pools.

Verwalten von Dynamic Resource Pools (Übersicht der Schritte)

Aufgabe 

Beschreibung 

Siehe 

Aktivieren oder Deaktivieren von Resource Pools. 

Aktivieren oder Deaktivieren von Resource Pools auf einem System. 

Aktivieren und Deaktivieren von Pools

Aktivieren oder Deaktivieren von Dynamic Resource Pools. 

Aktivieren oder Deaktivieren von Dynamic Resource Pools auf einem System. 

Aktivieren und Deaktivieren von Pools

Erstellen einer statischen Resource Pool-Konfiguration. 

Erstellen einer statischen Konfigurationsdatei, die der aktuellen dynamischen Konfiguration entspricht. Weitere Informationen finden Sie unter Resource Pools-Framework.

So erstellen Sie eine statische Konfiguration

Bearbeiten einer Resource Pool-Konfiguration. 

Überarbeiten einer Pool-Konfiguration auf dem System, beispielsweise durch das Erstellen von zusätzlichem Pools. 

So modifizieren Sie eine Konfiguration

Zuordnen eines Resource Pools zu einer Scheduling-Klasse. 

Zuordnen eines Pool zu einer Scheduler-Klasse, so dass alle an den Pool gebundenen Prozesse den angegebenen Scheduler verwenden. 

So ordnen Sie einen Pool einer Scheduling-Klasse zu

Einrichten von Konfigurationseinschränkungen und Definieren von Konfigurationszielen. 

Angabe der Ziele für poold, um festzulegen, wann Korrekturmaßnahmen eingeleitet werden sollen. Weitere Informationen zu den Konfigurationszielen finden Sie unter poold – Übersicht.

So richten Sie Konfigurationseinschränkungen ein und So definieren Sie Konfigurationsziele

Einstellen der Protokollierungsebene. 

Einstellen der Ebene, auf der poold Protokollinformationen erzeugen soll.

So richten Sie die Protokollierungsebene für poold ein

Verwenden einer Textdatei mit dem Befehl poolcfg.

Der Befehl poolcfg kann um den Namen eine Textdatei erweitert werden.

So verwenden Sie Befehlsdateien mit poolcfg

Übertragen von Ressourcen im Kernel. 

Übertragen von Ressourcen im Kernel. Beispielsweise können Sie Ressourcen mit bestimmten IDs an ein Ziel-Set übertragen. 

Übertragen von Ressourcen

Aktivieren einer Pool-Konfiguration. 

Aktivieren der Konfiguration in der standardmäßigen Konfigurationsdatei. 

So aktivieren Sie eine Pool-Konfiguration

Validieren einer Pool-Konfiguration, bevor sie übernommen wird. 

Validieren einer Pool-Konfiguration, um zu testen, was bei einer Validierung geschieht. 

So validieren Sie eine Konfiguration vor der Übernahme

Löschen einer Pool-Konfiguration von dem System. 

Alle zugewiesenen Ressourcen wie z. B. Prozessorsets werden auf den Standardstatus zurückgesetzt. 

So entfernen Sie eine Pool-Konfiguration

Binden von Prozessen an einen Pool. 

Manuelles Zuweisen eines laufenden Prozesses auf dem System zu einem Resource Pool. 

So binden Sie Prozesse an einen Pool

Binden von Aufgaben oder Projekten an einen Pool. 

Zuweisen von Aufgaben oder Projekten zu einem Resource Pool. 

So binden Sie Aufgaben oder Projekte an einen Pool

Binden von neuen Prozessen an einen Resource Pool. 

Um neue Prozesse in einem Prozess automatisch an einen bestimmten Pool zu binden, fügen Sie jedem Eintrag in der project-Datenbank ein Attribut hinzu.

So richten Sie das Attribute project.pool für ein Projekt ein

Verwenden von project-Attributen, um einen Prozess an einen anderen Pool zu binden.

Ändern der Pool-Bindung für neu gestartete Prozesse. 

So verwenden Sie project-Attribute zum Binden eines Projekts an einen anderen Pool

Verwenden des poolstat-Dienstprogramms zum Erzeugen von Berichten.

Erzeugen von mehreren Berichten in angegebenen Intervallen. 

Erstellen von mehreren Berichten in bestimmten Intervallen

Erzeugen von Ressourcenset-Statistiken. 

Verwenden des Dienstprogramms poolstat zum Erzeugen von Statistiken für ein pset-Ressourcenset.

Erstellen von Ressourcenset-Statistiken

Aktivieren und Deaktivieren von Pools

Ab Solaris-Release 10 11/06 können Sie die Resource Pools- und Dynamic Resource Pools-Services auf dem System mit dem Befehl svcadm aktivieren bzw. deaktivieren. Eine Beschreibung dieses Befehls finden Sie in der Manpage svcadm(1M).

Mit dem in der Manpage pooladm(1M) ausführlich beschriebenen Befehl pooladm können Sie:


Hinweis –

Wenn ein System aufgerüstet wird und das Resource Pools-Framework aktiviert und die Datei /etc/pooladm.conf vorhanden ist, wird der Pools-Service aktiviert und die in der Datei enthaltene Konfiguration für das System übernommen.


ProcedureSolaris 10 11/06 und höher: So aktivieren Sie die Resource Pools mit dem Befehl svcadm

  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. Aktivieren Sie den Resource Pools-Service.


    # svcadm enable system/pools:default
    

ProcedureSolaris 10 11/06 und höher: So deaktivieren Sie die Resource Pools mit dem Befehl svcadm

  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. Deaktivieren Sie den Resource Pools-Service.


    # svcadm disable system/pools:default
    

ProcedureSolaris 10 11/06 und höher: So aktivieren Sie die Dynamic Resource Pools mit dem Befehl svcadm

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

    Rollen umfassen Autorisierungen und privilegierte Befehle. Weitere Informationen zum Erstellen der Rolle sowie zum Zuweisen einer Rolle zu einem Benutzer finden Sie unter Configuring RBAC (Task Map) in System Administration Guide: Security Services „Managing RBAC (Task Map)“ im System Administration Guide: Security Services.

  2. Aktivieren Sie den Dynamic Resource Pools-Service.


    # svcadm enable system/pools/dynamic:default
    

Beispiel 13–1 Abhängigkeit des Dynamic Resource Pools-Services vom Resource Pools-Service

In diesem Beispiel wird gezeigt, dass Sie zunächst die Resource Pools aktivieren müssen, wenn Sie DRP ausführen möchten.

Es besteht eine Abhängigkeit zwischen Resource Pools und Dynamic Resource Pools. DRP ist jetzt ein von den Resource Pools abhängiger Service. DRP kann unabhängig vom Resource Pools-Service aktiviert und deaktiviert werden.

Im Folgenden wird gezeigt, dass sowohl Resource Pools als auch Dynamic Resource Pools derzeit deaktiviert sind:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:32:26 svc:/system/pools/dynamic:default
disabled       10:32:26 svc:/system/pools:default

Aktivieren Sie die Dynamic Resource Pools:


# svcadm enable svc:/system/pools/dynamic:default
# svcs -a | grep pool
disabled       10:39:00 svc:/system/pools:default
offline        10:39:12 svc:/system/pools/dynamic:default

Der DRP-Service ist noch immer offline.

Geben Sie die Option -x des Befehls svcs ein, um festzustellen, warum der DRP-Service offline ist:


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:39:00 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:39:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Aktivieren Sie den Resource Pools-Service, so dass der DRP-Service ausgeführt werden kann:


# svcadm enable svc:/system/pools:default

Wenn der Befehl svcs *pool* verwendet wird, zeigt das System Folgendes an:


# svcs *pool*
STATE          STIME    FMRI
online         10:40:27 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default


Beispiel 13–2 Auswirkungen auf Dynamic Resource Pools, wenn der Resource Pools-Service deaktiviert ist

Wenn beide Services online sind und Sie den Resource Pools-Service deaktivieren:


# svcadm disable svc:/system/pools:default 

Wenn der Befehl svcs *pool* verwendet wird, zeigt das System Folgendes an:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default
# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default

Schließlich wird der DRP-Service offline geschaltet, weil der Resource Pools-Service deaktiviert wurde:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
offline        10:41:12 svc:/system/pools/dynamic:default

Ermitteln Sie, warum der DRP-Service offline ist:


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:41:05 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:41:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Resource Pools müssen gestartet sein, damit DRP ausgeführt werden können. Beispielsweise können Resource Pools mit dem Befehl pooladm und der Option -e gestartet werden:


# pooladm -e

Jetzt zeigt der Befehl svcs *pool* Folgendes an:


# svcs *pool*
STATE          STIME    FMRI
online         10:42:23 svc:/system/pools:default
online         10:42:24 svc:/system/pools/dynamic:default

ProcedureSolaris 10 11/06 und höher: So deaktivieren Sie den Dynamic Resource Pools-Service mit dem Befehl svcadm

  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. Deaktivieren Sie den Dynamic Resource Pools-Service.


    # svcadm disable system/pools/dynamic:default
    

ProcedureSo aktivieren Sie Resource Pools mit dem Befehl pooladm

  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. Aktivieren Sie die Pools.


    # pooladm -e
    

ProcedureSo deaktivieren Sie Resource Pools mit dem Befehl pooladm

  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. Deaktivieren Sie die Pools.


    # pooladm -d
    

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
    

Übertragen von Ressourcen

Geben Sie das Unterbefehlsargument transfer für die Option -c des Befehls poolcfg mit der Option -d ein, um Ressourcen im Kernel zu übertragen. Die Option -d gibt an, dass der Befehl direkt am Kernel ausgeführt wird und keine Eingabe aus einer Datei erhält.

Im folgenden Verfahren werden zwei CPUs aus dem Prozessorset pset1 in das Prozessorset pset2 im Kernel verschoben.

ProcedureSo verschieben Sie CPUs zwischen Prozessorsets

  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. Verschieben Sie zwei CPUs von pset1 nach pset2.

    Die Unterklauseln from und to können in beliebiger Reihenfolge verwendet werden. Für jeden Befehl wird nur jeweils eine Unterklausel to und from unterstützt.


    # poolcfg -dc 'transfer 2 from pset pset1 to pset2'
    

Beispiel 13–3 Alternative Methode zum Verschieben von CPUs zwischen Prozessorsets

Wenn bestimmte bekannte IDs eines Ressourcentyps übertragen werden, kann auch eine alternative Syntax verwendet werden. Beispielsweise weist der folgende Befehl die zwei CPUs mit den IDs 0 und 2 dem Prozessorset pset_large zu:


# poolcfg -dc "transfer to pset pset_large (cpu 0; cpu 2)"

Fehlerbehebung

Falls eine Übertragung fehlschlägt, weil nicht genügend Ressourcen verfügbar sind, um die Anforderung zu erfüllen oder die angegebenen IDs nicht gefunden werden können, zeigt das System eine Fehlermeldung an.

Aktivieren und Entfernen von Pool-Konfigurationen

Mit dem Befehl pooladm können Sie eine bestimmte Pool-Konfiguration aktivieren oder die aktuelle aktive Pool-Konfiguration entfernen. Weitere Informationen zu diesem Befehl finden Sie in der Manpage pooladm(1M).

ProcedureSo aktivieren Sie eine Pool-Konfiguration

Zum Aktivieren der Konfiguration in der standardmäßigen Konfigurationsdatei /etc/pooladm.conf geben Sie den Befehl pooladm mit der Option -c für „Konfiguration übernehmen“ ein.”

  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. Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.


    # pooladm -c
    
  3. (Optional) Kopieren Sie die dynamische Konfiguration in eine statische Konfigurationsdatei, z. B. /tmp/backup.


    # pooladm -s /tmp/backup
    

ProcedureSo validieren Sie eine Konfiguration vor der Übernahme

Mit der Option -n und der Option -c können Sie prüfen, was bei einer Validierung geschieht. Die Konfiguration wird dabei nicht tatsächlich übernommen.

Der folgende Befehl versucht, die Konfiguration unter /home/admin/newconfig zu validieren. Alle erfassten Fehler werden angezeigt, die Konfiguration selbst wird jedoch nicht modifiziert.

  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. Validieren Sie die Konfiguration, bevor Sie sie übernehmen.


    # pooladm -n -c /home/admin/newconfig
    

ProcedureSo entfernen Sie eine Pool-Konfiguration

Zum Entfernen der aktuellen, aktiven Konfiguration und Wiederherstellen des Standardzustands aller zugeordneten Ressourcen, z. B. Prozessorsets, geben Sie die Option -x für „Konfiguration entfernen“ ein.”

  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. Entfernen Sie die aktuelle aktive Konfiguration.


    # pooladm -x
    

    Mit der Option -x für den Befehl pooladm werden alle benutzerdefinierten Elemente aus der dynamischen Konfiguration entfernt. Alle Ressourcen nehmen wieder den Standardstatus an, und alle Pool-Bindungen werden durch eine Bindung mit dem Standard-Pool ersetzt.

Mischen von Scheduling-Klassen innerhalb eines Prozessorsets

Prozesse in den Klassen TS und IA können im gleichen Prozessorset gemischt werden. Das Mischen anderer Scheduling-Klassen innerhalb eines Prozessorsets kann zu unerwarteten Ergebnissen führen. Wenn der Befehl pooladm -x dazu führt, dass Scheduling-Klassen innerhalb eines Prozessorsets gemischt werden, verwenden Sie den Befehl priocntl ein, um laufende Prozesse in eine andere Scheduling-Klasse zu verschieben. Lesen Sie dazu So verschieben Sie manuelle Prozesse aus der TS-Klasse in die FSS-Klasse. Lesen Sie auch die Manpage priocntl(1).

Einrichten von Pool-Attributen und Binden an einen Pool

Durch Einrichten eines project.pool-Attributs können Sie einen Resource Pool einem Projekt zuordnen.

Sie können einen laufenden Prozess auf zwei Arten an einen Pool binden:

ProcedureSo binden Sie Prozesse an einen Pool

Im folgenden Verfahren wird der Befehl poolbind mit der Option -p verwendet, um einen Prozess (in diesem Fall die aktuelle Shell) manuell an einen Pool namens ohare zu binden.

  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. Binden Sie manuell einen Prozess an einen Pool:


    # poolbind -p ohare $$
    
  3. Überprüfen Sie die Pool-Bindung des Prozesses mit dem Befehl poolbind und der Option -q.


    $ poolbind -q $$
    155509 ohare

    Das System zeigt die Prozess-ID und die Pool-Bindung an.

ProcedureSo binden Sie Aufgaben oder Projekte an einen Pool

Zum Binden von Aufgaben oder Projekten an einen Pool verwenden Sie den Befehl poolbind mit der Option -i. Im folgenden Beispiel werden alle Prozesse im Projekt airmiles an den Pool laguardia gebunden.

  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. Binden Sie alle Prozesse im Projekt airmiles an den Pool laguardia.


    # poolbind -i project -p laguardia airmiles
    

ProcedureSo richten Sie das Attribute project.pool für ein Projekt ein

Mit dem Attribut project.pool können Sie die Prozesse eines Projekts an einen Resource Pool binden.

  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. Fügen Sie jedem Eintrag in der project-Datenbank das Attribut project.pool hinzu.


    # projmod -a -K project.pool=poolname project
    

ProcedureSo verwenden Sie project-Attribute zum Binden eines Projekts an einen anderen Pool

Angenommen, Sie haben eine Konfiguration mit zwei Pools, studio und backstage. Die Datei /etc/project enthält Folgendes:


user.paul:1024::::project.pool=studio
user.george:1024::::project.pool=studio
user.ringo:1024::::project.pool=backstage
passes:1027::paul::project.pool=backstage

Bei dieser Konfiguration werden Prozesse, die von dem Benutzer paul gestartet werden, standardmäßig an den Pool studio gebunden.

Der Benutzer paul kann die Pool-Bindung für von ihm gestartete Prozesse ändern. paul kann den Befehl newtask verwenden, um Arbeiten auch an den Pool backstage zu binden, indem sie im Projekt passes gestartet werden.

  1. Starten Sie einen Prozess im Projekt passes.


    $ newtask -l -p passes
    
  2. Verwenden Sie den Befehl poolbind mit der Option -q, um die Pool-Bindung des Prozesses zu überprüfen. Verwenden Sie darüber hinaus ein doppeltes Dollarzeichen ($$), um die Prozessnummer der übergeordneten Shell an den Befehl zu übergeben.


    $ poolbind -q $$
    6384  pool backstage

    Das System zeigt die Prozess-ID und die Pool-Bindung an.

Verwenden von poolstat zum Erstellen von Statistiken über Pool-bezogene Ressourcen

Mit dem Befehl poolstat können Sie Statistiken über Pool-bezogene Ressourcen anzeigen. Weitere Informationen finden Sie unter Verwenden von poolstat zur Überwachung der Pools und der Ressourcenauslastung und in der Manpage poolstat(1M).

Die folgenden Unterabschnitte enthaltenen Beispiele, mit denen das Erstellen eines Berichts für einen bestimmten Zweck verdeutlicht wird.

Anzeigen der standardmäßigen poolstat -Ausgabe

Geben Sie den Befehl poolstat ohne Argumente ein, um nur eine Kopfzeile sowie eine Zeile mit Informationen zu jedem Pool auszugeben. Die Informationszeile enthält die Pool-ID, den Pool-Namen und die Ressourcenstatistiken für das an den Pool angehängte Prozessorset.


machine% poolstat
                              pset
       id pool           size used load
        0 pool_default      4  3.6  6.2
        1 pool_sales        4  3.3  8.4

Erstellen von mehreren Berichten in bestimmten Intervallen

Mit dem folgenden Befehl erstellen Sie drei Berichte in einem 5-Sekunden-Messintervall.


machine% poolstat 5 3
                               pset
 id pool                 size used load
 46 pool_sales              2  1.2  8.3
  0 pool_default            2  0.4  5.2
                              pset
 id pool                 size used load
 46 pool_sales              2  1.4  8.4
  0 pool_default            2  1.9  2.0
                              pset
 id pool                 size used load
 46 pool_sales              2  1.1  8.0
  0 pool_default            2  0.3  5.0  

Erstellen von Ressourcenset-Statistiken

Im folgenden Beispiel wird der Befehl poolstat mit der Option -r verwendet, um Statistiken für das Prozessorset-Ressourcenset zu erstellen. Beachten Sie, dass das Ressourcenset pset_default an mehrere Pools angehängt ist, daher wird dieses Prozessorset einmal für jede Pool-Mitgliedschaft aufgeführt.


machine% poolstat -r pset
      id pool          type rid rset          min  max size used load
       0 pool_default  pset  -1 pset_default    1  65K    2  1.2  8.3
       6 pool_sales    pset   1 pset_sales      1  65K    2  1.2  8.3
       2 pool_other    pset  -1 pset_default    1  10K    2  0.4  5.2