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.
Aufgabe |
Beschreibung |
Siehe |
---|---|---|
Aktivieren oder Deaktivieren von Resource Pools. |
Aktivieren oder Deaktivieren von Resource Pools auf einem System. | |
Aktivieren oder Deaktivieren von Dynamic Resource Pools. |
Aktivieren oder Deaktivieren von Dynamic Resource Pools auf einem System. | |
Erstellen einer statischen Resource Pool-Konfiguration. |
Erstellen einer statischen Konfigurationsdatei, die der aktuellen dynamischen Konfiguration entspricht. Weitere Informationen finden Sie unter Resource Pools-Framework. | |
Bearbeiten einer Resource Pool-Konfiguration. |
Überarbeiten einer Pool-Konfiguration auf dem System, beispielsweise durch das Erstellen von zusätzlichem Pools. | |
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. | |
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. | |
Verwenden einer Textdatei mit dem Befehl poolcfg. |
Der Befehl poolcfg kann um den Namen eine Textdatei erweitert werden. | |
Übertragen von Ressourcen im Kernel. |
Übertragen von Ressourcen im Kernel. Beispielsweise können Sie Ressourcen mit bestimmten IDs an ein Ziel-Set übertragen. | |
Aktivieren einer Pool-Konfiguration. |
Aktivieren der Konfiguration in der standardmäßigen Konfigurationsdatei. | |
Validieren einer Pool-Konfiguration, bevor sie übernommen wird. |
Validieren einer Pool-Konfiguration, um zu testen, was bei einer Validierung geschieht. | |
Löschen einer Pool-Konfiguration von dem System. |
Alle zugewiesenen Ressourcen wie z. B. Prozessorsets werden auf den Standardstatus zurückgesetzt. | |
Binden von Prozessen an einen Pool. |
Manuelles Zuweisen eines laufenden Prozesses auf dem System zu einem Resource Pool. | |
Binden von Aufgaben oder Projekten an einen Pool. |
Zuweisen von Aufgaben oder Projekten zu einem Resource 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. | |
Erzeugen von Ressourcenset-Statistiken. |
Verwenden des Dienstprogramms poolstat zum Erzeugen von Statistiken für ein pset-Ressourcenset. |
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:
Pools aktivieren, so dass sie bearbeitet werden können
Pools deaktivieren, so dass sie nicht bearbeitet werden können
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.
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.
Aktivieren Sie den Resource Pools-Service.
# svcadm enable system/pools:default |
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.
Deaktivieren Sie den Resource Pools-Service.
# svcadm disable system/pools:default |
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.
Aktivieren Sie den Dynamic Resource Pools-Service.
# svcadm enable system/pools/dynamic:default |
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 |
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 |
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.
Deaktivieren Sie den Dynamic Resource Pools-Service.
# svcadm disable system/pools/dynamic:default |
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.
Aktivieren Sie die Pools.
# pooladm -e |
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.
Deaktivieren Sie die Pools.
# pooladm -d |
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.
Das neue Funktionsmerkmal pooladm -s sollte dem älteren Befehl poolcfg -c discover zum Erstellen einer neuen Konfiguration, die der dynamischen Konfiguration entspricht, vorgezogen werden.
Aktivieren Sie die Pools auf dem System.
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.
Aktualisieren Sie die statische Konfigurationsdatei so, dass sie der aktuellen dynamischen Konfiguration entspricht.
# pooladm -s |
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 |
Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.
# pooladm -c |
(Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:
# pooladm -s /tmp/backup |
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.
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.
Erstellen Sie das Prozessorset pset_batch.
# poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)' |
Erstellen Sie den Pool pool_batch.
# poolcfg -c 'create pool pool_batch' |
Verbinden Sie Pool und Prozessorset über eine Zuordnung.
# poolcfg -c 'associate pool pool_batch (pset pset_batch)' |
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 |
Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.
# pooladm -c |
(Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:
# pooladm -s /tmp/backup |
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.
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.
Bearbeiten Sie den Pool pool_batch, um ihm dem FSS zuzuordnen.
# poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")' |
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 |
Übernehmen Sie die Konfiguration unter /etc/pooladm.conf :
# pooladm -c |
(Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:
# pooladm -s /tmp/backup |
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.
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.
Ändern Sie die Eigenschaft cpu.pinned in der statischen oder dynamischen Konfiguration:
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.
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.
Ändern Sie das System tester, um das Ziel wt-load zu bevorzugen.
# poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")' |
Deaktivieren Sie das Ziel locality für das standardmäßige Prozessorset.
# poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")' |
Deaktivieren Sie das Ziel locality für das Prozessorset pset_batch.
# poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")' |
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 |
Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.
# pooladm -c |
(Optional) Um die dynamische Konfiguration in die statische Konfigurationsdatei namens /tmp/backup zu kopieren, geben Sie Folgendes ein:
# pooladm -s /tmp/backup |
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.
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.
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.
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.
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) |
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.
Führen Sie den folgenden Befehl aus:
# /usr/sbin/poolcfg -f poolcmds.txt |
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.
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.
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' |
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)" |
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.
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).
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.”
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.
Übernehmen Sie die Konfiguration unter /etc/pooladm.conf.
# pooladm -c |
(Optional) Kopieren Sie die dynamische Konfiguration in eine statische Konfigurationsdatei, z. B. /tmp/backup.
# pooladm -s /tmp/backup |
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.
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.
Validieren Sie die Konfiguration, bevor Sie sie übernehmen.
# pooladm -n -c /home/admin/newconfig |
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.”
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.
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.
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).
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:
Verwenden Sie den unter poolbind(1M) beschriebenen Befehl poolbind, um einen bestimmten Prozess an einen benannten Resource Pool zu binden.
Geben Sie das Attribut project.pool in die project-Datenbank ein, um die Pool-Bindung für eine neue Anmeldesitzung oder eine Aufgabe zu identifizieren, die über den Befehl newtask gestartet wird. Lesen Sie auch die Manpages newtask(1), projmod(1M) und project(4).
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.
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.
Binden Sie manuell einen Prozess an einen Pool:
# poolbind -p ohare $$ |
Ü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.
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.
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.
Binden Sie alle Prozesse im Projekt airmiles an den Pool laguardia.
# poolbind -i project -p laguardia airmiles |
Mit dem Attribut project.pool können Sie die Prozesse eines Projekts an einen Resource Pool binden.
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.
Fügen Sie jedem Eintrag in der project-Datenbank das Attribut project.pool hinzu.
# projmod -a -K project.pool=poolname project |
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.
Starten Sie einen Prozess im Projekt passes.
$ newtask -l -p passes |
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.
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.
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 |
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 |
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 |