Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 11 Verwalten des Resource Capping Daemons (Vorgehen)

In diesem Kapitel werden die Verfahren zum Konfigurieren und Verwenden des Resource Capping Daemons rcapd beschrieben.

Eine Einführung in den rcapd finden Sie in Kapitel 10Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons.

Konfigurieren und Verwenden des Resource Capping Daemons (Übersicht der Schritte)

Aufgabe 

Beschreibung 

Siehe 

Einrichten eines Schwellenwerts für die Memory Cap-Durchsetzung. 

Konfigurieren einer Memory Cap, die durchgesetzt wird, wenn der für Prozesse verfügbare reelle Speicher zu gering wird. 

So richten Sie einen Schwellenwert für die Memory Cap-Durchsetzung ein

Einrichten des Vorgangsintervalls. 

Das Ausführungsintervall für regelmäßige Vorgänge, die vom Resource Capping Daemon durchgeführt werden. 

So richten Sie Vorgangsintervalle ein

Aktivieren des Resource Cappings. 

Aktivieren des Resource Cappings auf dem System. 

So aktivieren Sie das Resource Capping

Deaktivieren des Resource Cappings. 

Deaktivieren des Resource Cappings auf dem System. 

So deaktivieren Sie das Resource Capping

Erstellen von Berichten mit Cap- und Projektinformationen. 

Anzeigen von Beispielbefehlen für das Erstellen von Berichten. 

Erstellen von Berichten mit Memory Cap- und Projektinformationen

Überwachen der Resident Set-Größe eines Projekts. 

Erstellen eines Berichts zur Resident Set-Größe eines Projekts. 

Überwachen der RSS eines Projekts

Festlegen der Working Set-Größe eines Projekts. 

Erstellen eines Berichts zur Working Set-Größe eines Projekts. 

Festlegen der Working Set-Größe eines Projekts

Erstellen eines Berichts zur Speicherauslastung und Memory Caps. 

Drucken einer Zeile zur Speicherauslastung und Durchsetzung von Memory Caps für jedes Intervall am Ende des Berichts. 

Erstellen von Berichten zur Speicherauslastung und dem Schwellenwert für die Durchsetzung der Memory Cap

Verwalten des Resource Capping Daemons mit rcapadm

In diesem Abschnitt werden die Verfahren zum Konfigurieren und Verwenden des Resource Capping Daemons mit dem Befehl rcapadm beschrieben. Weitere Informationen finden Sie in rcapd-Konfiguration und in der Manpage rcapadm(1M). Auch das Verwenden von rcapadm zum Festlegen einer temporären Resource Cap für eine Zone wird behandelt.

Erfolgt die Eingabe ohne Argumente, zeigt rcapadm den aktuellen Status des Resource Capping Daemons an, sofern dieser konfiguriert wurde.

ProcedureSo richten Sie einen Schwellenwert für die Memory Cap-Durchsetzung ein

Memory Caps können so konfiguriert werden, dass sie erst dann durchgesetzt werden, wenn der für Prozesse verfügbare reelle Speicher zu gering wird. Weitere Informationen finden Sie unter Schwellenwert für die Memory Cap-Durchsetzung.

Der Mindestwert (und die Standardeinstellung) ist 0; dies bedeutet, dass Memory Caps immer durchgesetzt werden. Zum Einrichten eines anderen Mindestwerts führen Sie das folgende Verfahren aus.

  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. Geben Sie den Befehl rcapadm mit der Option -c ein, um einen anderen Wert für die Speicherauslastung einzurichten, ab dem eine Memory Cap durchgesetzt wird.


    # rcapadm -c percent
    

    percent liegt im Bereich von 0 bis 100. Höhere Werte sind weniger einschränkend. Ein höherer Wert bedeutet, dass Projekt-Arbeitslasten mit Memory Caps ausgeführt werden können, ohne dass die Memory Caps durchgesetzt werden, bis die Systemspeicherauslastung diesen Schwellenwert überschreitet.

Siehe auch

Wie die aktuelle Speicherauslastung und der Schwellenwert für die Memory Cap-Durchsetzung angezeigt werden, können Sie unter Erstellen von Berichten zur Speicherauslastung und dem Schwellenwert für die Durchsetzung der Memory Cap nachlesen.

ProcedureSo richten Sie Vorgangsintervalle ein

rcapd-Vorgangsintervalle enthält Informationen über die Intervalle, in denen die regelmäßig von rcapd durchgeführten Vorgänge ausgeführt werden. Zum Einstellen der Vorgangsintervalle mit rcapadm führen Sie die folgenden Schritte aus.

  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. Verwenden Sie die Option -i, um das Intervall einzurichten.


    # rcapadm -i interval=value,...,interval=value 
    

    Hinweis –

    Alle Intervallwerte werden in Sekunden angegeben.


ProcedureSo aktivieren Sie das Resource Capping

Es gibt drei Möglichkeiten, das Resource Capping auf einem System zu aktivieren. Das Aktivieren des Resource Capping stellt auch die Standardwerte in der Datei /etc/rcap.conf 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 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. Aktivieren Sie den Resource Capping Daemon mit einer der folgenden Methoden:

    • Aktivieren Sie das Resource Capping mit dem Befehl svcadm.


      # svcadm enable rcap
      
    • Um den Resource Capping Daemon so zu aktivieren, dass er unmittelbar und bei jedem Neustart des Systems gestartet wird, geben Sie Folgendes ein:


      # rcapadm -E
      
    • Um den Resource Capping Daemon bei einem Neustart zu starten, ohne dass er unmittelbar gestartet wird, geben Sie die Option -n an:


      # rcapadm -n -E
      

ProcedureSo deaktivieren Sie das Resource Capping

Es gibt drei Möglichkeiten, das Resource Capping auf einem System zu deaktivieren.

  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. Deaktivieren Sie den Resource Capping Daemon auf eine der folgenden Arten:

    • Deaktivieren Sie das Resource Capping mit dem Befehl svcadm.


      # svcadm disable rcap
      
    • Um den Resource Capping Daemon so zu deaktivieren, dass er unmittelbar deaktiviert und bei einem Neustart des Systems nicht gestartet wird, geben Sie Folgendes ein:


      # rcapadm -D
      
    • Um den Resource Capping Daemon zu deaktivieren, ohne ihn unmittelbar zu stoppen, geben Sie die Option -n an:


      # rcapadm -n -D
      

    Tipp –

    Sicheres Deaktivieren des Resource Capping Daemons


    Geben Sie den Befehl svcadm oder den Befehl rcapadm mit der Option -D ein, um den rcapd sicher zu deaktivieren. Wenn der Daemon beendet wird (siehe die Manpage kill(1)), könnten Prozesse mit dem Status „stopped“ zurückbleiben, die dann manuell neu gestartet werden müssen. Um einen Prozess weiter auszuführen, verwenden Sie den Befehl prun. Weitere Informationen finden Sie in der Manpage prun(1).

ProcedureSo legen Sie eine temporäre Resource Cap für eine Zone fest

Mit dieser Vorgehensweise wird der Speicher begrenzt, der von einer angegebenen Zone maximal beansprucht werden kann. Dieser Wert gilt nur bis zum nächsten Neustart. Um eine dauerhafte Begrenzung festzulegen, verwenden Sie den Befehl zonecfg.

  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.

  2. Legen Sie eine Speichergrenze von 512 MB für die Zone my-zone fest.


    # rcapadm -z testzone -m 512M
    

Erstellen von Berichten mit rcapstat

Mit dem Befehl rcapstat erstellen Sie Berichte zu den Resource Capping-Statistiken. Überwachen der Ressourcenauslastung mit rcapstat beschreibt, wie Sie den Befehl rcapstat zum Erstellen von Berichten verwenden. Dieser Abschnitt enthält darüber hinaus Beschreibungen der Spaltenüberschriften in einem Bericht. Diese Informationen finden Sie auch in der Manpage rcapstat(1).

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

Erstellen von Berichten mit Memory Cap- und Projektinformationen

In diesem Beispiel werden Memory Caps für zwei Projekte definiert, die zwei verschiedenen Benutzern zugeordnet sind. user1 hat eine Memory Cap von 50 MB, user2 eine Memory Cap von 10 MB.

Der folgende Befehl erzeugt fünf Berichte in einem Messintervall von 5 Sekunden.


user1machine% rcapstat 5 5
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M   50M    0K 3312K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K 

Die ersten drei Zeilen dieser Ausgabe bilden den ersten Bericht, der Memory Cap- und Projekt-Informationen für die zwei Projekte sowie Paging-Statistiken ab dem Start von rcapd enthält. Die Spalten at und pg enthalten Werte größer Null für user1 und Null für user2. Dies deutet darauf hin, dass user1 seinen Grenzwert für einen bestimmten Zeitraum im Verlauf des Daemons überschritten hat, user2 jedoch nicht.

Die nachfolgenden Berichte zeigen keine wichtige Aktivität.

Überwachen der RSS eines Projekts

Das folgende Beispiel zeigt das Projekt user1, in dem eine RSS über der zugehörigen RSS-Memory Cap vorliegt.

Der folgende Befehl erzeugt fünf Berichte in einem Messintervall von 5 Sekunden.


user1machine% rcapstat 5 5

    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M  220M  5528K  2764K
376565   user1      3 6249M 6144M 6144M    0M  131M  4912K  1637K
376565   user1      3 6249M 6171M 6144M   27M  147M  6048K  2016K
376565   user1      3 6249M 6146M 6144M 4872M  174M  4368K  1456K
376565   user1      3 6249M 6156M 6144M   12M  161M  3376K  1125K

Das Projekt user1 hat drei Prozesse, die aktiv reellen Speicher nutzen. Die positiven Werte in der Spalte pg weisen daraufhin, dass der rcapd ständig Speicher auslagert, während er versucht, die Memory Cap einzuhalten, indem die Speicherauslastung durch Projektprozesse gesenkt wird. rcapd ist jedoch nicht in der Lage, die RSS unter dem Memory Cap-Wert zu halten. Dies wird durch die wechselnden rss-Werte verdeutlicht, die keine entsprechende Reduzierung zeigen. Sobald Speicher ausgelagert wird, nutzt die Arbeitslast den Speicher neu und der RSS-Wert steigt wieder an. Dies bedeutet, dass der gesamte residente Speicher des Projekts aktiv genutzt wird und die Working Set-Größe (WSS) größer als die Memory Cap ist. Aus diesem Grund ist der rcapd gezwungen, einen Teil des Working Sets auszulagern, um die Memory Cap einzuhalten. In diesem Zustand treten weiterhin zahlreiche Page-Faults und somit erhöhtes E/A auf, bis eines der Folgenden eintritt:

In dieser Situation könnte ein kürzeres Messintervall die Diskrepanz zwischen dem RSS- und dem Cap-Wert reduzieren, da der rcapd gezwungen wäre, die Arbeitslast häufiger zu messen und Memory Caps häufiger durchzusetzen.


Hinweis –

Ein Page-Fault tritt immer dann auf, wenn entweder eine neue Page erstellt oder von einem Swap-Gerät eingelesen werden muss.


Festlegen der Working Set-Größe eines Projekts

Das folgende Beispiel schließt an das vorherige Beispiel an und verwendet das gleiche Projekt.

Das vorherige Beispiel zeigt, dass das Projekt user1 mehr reellen Speicher nutzt als seine Memory Cap gestattet. Dieses Beispiel zeigt, wie viel Speicher die Projekt-Arbeitslast benötigt.


user1machine% rcapstat 5 5
    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M    0K   689M     0K
376565   user1      3 6249M 6144M 6144M    0K    0K     0K     0K
376565   user1      3 6249M 6171M 6144M   27M    0K    27M     0K
376565   user1      3 6249M 6146M 6144M 4872K    0K  4816K     0K
376565   user1      3 6249M 6156M 6144M   12M    0K    12M     0K
376565   user1      3 6249M 6150M 6144M 5848K    0K  5816K     0K
376565   user1      3 6249M 6155M 6144M   11M    0K    11M     0K
376565   user1      3 6249M 6150M   10G   32K    0K    32K     0K
376565   user1      3 6249M 6214M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K

Inmitten des Zyklus wurde die Memory Cap des Projekts user1 von 6 GB auf 10 GB erhöht. Dieser Anstieg stoppt die Durchsetzung der Memory Cap und gestattet ein Anwachsen der Resident Set-Größe, begrenzt nur durch andere Prozesse und der Größe des reellen Speichers in dem Computer. Die Spalte rss könnte sich stabilisieren, um die Working Set-Größe (WSS) des Projekts widerzuspiegeln, in diesem Beispiel 6247M. Dies ist der geringste Memory Cap-Wert, der eine Ausführung der Projektprozesse ohne ständig auftretende Page-Faults gestattet.

Während die Memory Cap für user1 bei 6 s liegt, sinkt die RSS bei einem 5-Sekunden-Messintervall. E/A steigt an, während der rcapd Speicher der Arbeitslast auslagert. Kurz nach Abschluss des Auslagerns werden die Pages von der Arbeitslast, die diese Pages benötigt, wieder eingelesen. Dieser Zyklus wiederholt sich, bis die Memory Cap auf 10 GB angestiegen ist, etwa in der Mitte des Beispiels. Dann stabilisiert sich die RSS bei 6,1 GB. Da die RSS jetzt unter der Memory Cap liegt, tritt kein weiteres Paging mehr auf. Die aufgrund des Pagings auftretenden E/A-Vorgänge stoppen ebenfalls. Somit benötigt das Projekt 6,1 GB zur Ausführung der im Überwachungszeitraum angefallenen Arbeiten.

Lesen Sie hierzu auch die Manpages vmstat(1M) und iostat(1M).

Erstellen von Berichten zur Speicherauslastung und dem Schwellenwert für die Durchsetzung der Memory Cap

Mit der Option -g für den Befehl rcapstat erstellen Sie Berichte zu Folgendem:

Mit der Option -g wird am Ende des Berichts für jedes Intervall eine Zeile zur Speicherauslastung und Memory Cap-Durchsetzung gedruckt.


# rcapstat -g
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%