Article ID: 112740, created on Nov 27, 2012, last review on Aug 12, 2014

  • Applies to:
  • Virtuozzo
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

Allgemeine Informationen

In Parallels Virtuozzo Containers (PVC) für Linux und Parallels Server Bare Metal (PSBM)-Produkten werden verschiedene Ressourcenverwaltungsschemata verwendet. Dieser Artikel soll Ihnen helfen, die allgemeine Funktionsweise der einzelnen Schemata zu verstehen und die für Ihre Anforderungen am besten geeigneten Produktversionen auszuwählen.

Bevor Sie weiterlesen, sollten Sie sich mit den folgenden Begriffen und ihrer Bedeutung vertraut machen:

Speicherzuordnung - Die Reservierung von virtuellem Arbeitsspeicher mithilfe von Standardwerkzeugen wie malloc(3)

Speicherverbrauch (oder Speicherauslastung) - Die Speicherung von Daten im zugeordneten Arbeitsspeicher

Im Allgemeinen wird nicht der gesamte zugeordnete Arbeitsspeicher auch tatsächlich genutzt. Daher ist es möglich, mehr Arbeitsspeicher zuzuordnen, als auf dem Computer selbst verfügbar ist.

Parallels Virtuozzo Containers für Linux und Parallels Server Bare Metal-Produkte ermöglichen Ihnen, sowohl die Speicherzuordnung als auch den Speicherverbrauch zu verwalten.

Wenn die Speicherverbrauchslimits aller Container zusammengenommen die physisch verfügbare Menge an Arbeitsspeicher (RAM- und Swap-Speicher) übersteigt, wird dies als "Overselling" (oder Overbooking, Overcommitment usw.) bezeichnet.

Es wird empfohlen, die Speicherverbrauchslimits so festzulegen, dass der Speicherverbrauch insgesamt den physisch verfügbaren Arbeitsspeicher nicht übersteigt.

Seit Parallels Virtuozzo Containers für Linux 4.7 und Parallels Server 5 Bare Metal steht ein Container-Konfigurationsparameter namens VM_OVERCOMMIT, zur Verfügung, der die tatsächliche Differenz zwischen der zuteilbaren und der tatsächlich für den Verbrauch verfügbaren Menge an Arbeitsspeicher anzeigt.

In früheren Versionen war ein solches Tool zur raschen Bemessung der Speicherzuordnungs- und Speicherverbrauchslimits nicht verfügbar.

Im Folgenden bezeichnet der Begriff, overcommit die Differenz zwischen dem Speicherzuordnungs- und dem Speicherverbrauchslimit.

Speicherverwaltungsschemata

User Beancounters (UBC)

Zunächst wurde für die Ressourcenverwaltung in Parallels Virtuozzo Containers und OpenVZ das UBC-System eingeführt. Dieses System ermöglicht die Feineinstellung der Ressourcenzuordnungs- und Ressourcenverbrauchslimits und -Garantien für die Container.

Der wesentliche Vorteil dieses Systems ist die Möglichkeit, einen Container präzise auf die Anforderungen der in ihm installierten Applikationen einzustellen.

Der wesentliche Nachteil dieses Systems besteht darin, dass seine Funktion auf dem Linux-Kernel basiert und es daher für den Benutzer wenig intuitiv ist. Außerdem müssen die Limits sehr vorsichtig eingestellt werden, damit die Zuordnungs- und Verbrauchsparameter für den Arbeitsspeicher und andere Ressourcen gesteuert werden können.

Eine Beschreibung der einzelnen UBC-Parameter finden Sie in diesem Artikel:
112807 UBC-Ressourcen in Parallels Virtuozzo Containers für Linux

Service Level Management (SLM)

Das SLM-System wurde in Virtuozzo Containers für Linux 3.x (auch in Parallels Server 4 Bare Metal verfügbar) eingeführt und mit Parallels Virtuozzo Containers für Linux 4.7 und Parallels Server 5 Bare Metal durch ein neues System ersetzt. Es wurde entwickelt, um die Ressourcenverwaltung gegenüber dem UBC-System zu vereinfachen, und erfordert die Berechnung eines einzigen Parameters, slmmemorylimit. Der wesentliche Unterschied zwischen SLM und UBC besteht darin, dass bei SLM nur ein Limit, slmmemorylimit, existiert, sodass die Arbeitsspeicherressourcen für einen Container rasch konfiguriert werden können. Der Parameter weist die beiden Limits average und instant auf, die völlig anders funktionieren als barrier undlimit beim UBC-System.

Der Parameter average definiert den zulässigen Speicherverbrauch eines Containers, ähnlich (aber nicht genauso) wie oomguarpages in UBC. 

Der Parameter instant definiert den maximal zulässigen Speicherverbrauch eines Containers. Der Container kann nicht mehr Arbeitsspeicher verbrauchen, als durch dieses Limit festgelegt ist. (Die Speicherzuordnung hingegen darf dieses Limit überschreiten).

SLM überprüft die Arbeitsspeicherkonfiguration des Servers alle 15 Sekunden - mit einem so genannten "Tick" - und führt je nach dem gegenwärtigen Gesamtzustand des Node bestimmte vorkonfigurierte Aktionen aus. Wenn die Speicherauslastung größer als das auf den früheren Zuständen basierende "average"-Limit ist, werden die Prozesse des Containers beendet, ganz so, wie beim realen System, wenn der Kernel freien Speicherplatz für seine eigenen Aufgaben benötigt. Der Algorithmus für die Auswahl der zu beendenden Prozesse ist derselbe wie beim generischen Linux OOM-Killer.

Der Container kann nicht mehr zugeordneten Arbeitsspeicher verwenden, als durch das "instant"-Limit festgelegt ist. Wenn die Speicherauslastung dieses Limit erreicht hat und weiterer Arbeitsspeicher angefordert wird, beendet SLM die Prozesse, bis die Auslastung wieder unter dem "average"-Limit liegt.

Es wird dringend empfohlen, das "average"- und das "instant"-Limit auf denselben Wert einzustellen, um ein allzu häufiges Beenden von Prozessen zu vermeiden.

Die wesentlichen Vorteile des SLM-Systems sind die einfache Ressourcenbeschränkung und die Möglichkeit, bei der Feineinstellung eines Containers mit UBC-Ressourcen zusammenzuarbeiten.

Die wesentlichen Nachteile des SLM-Systems sind das schwierig zu interpretierende Verhalten deraverage und instant -Limits sowie das unvorhersehbare Verhalten im Falle mangelnder physischer Ressourcen.
 

vSwap

Unter Berücksichtigung der Stärken und Schwächen von SLM und UBC wurde mit Parallels Virtuozzo Containers für Linux 4.7 und Parallels Server 5 Bare Metal ein neues Schema namens vSwap eingeführt.

Bei einem Upgrade von früheren PVCfL-Versionen wird das SLM-Schema automatisch durch das vSwap-Schema ersetzt.

SLM- und UBC-Containerlimits werden während des CT-Starts eingelesen und in interne vSwap-Limits konvertiert. Die Konfigurationsdateien selbst werden nicht geändert, sofern die vSwap-Einstellungen nicht manuell festgelegt werden.

Das vSwap-Schema ermöglicht die rasche Konfiguration der RAM- und Swap-Limits sowie des Arbeitsspeicher-Overcommitment eines Containers, während die übrigen Parameter von Parallels Virtuozzo Containers für Linux automatisch berechnet werden.

Falls eine präzisere Feineinstellung erforderlich ist, können jedoch auch weitere UBC-Einstellungen konfiguriert werden. Container-Konfigurationsparameter haben Vorrang vor automatisch berechneten Parametern.

Zusätzliche Informationen

Weitere Informationen finden Sie in folgenden Artikeln:
1354 Was sind User Beancounters?
112807 UBC-Ressourcen in Parallels Virtuozzo Containers für Linux

Parallels Virtuozzo Containers 4.7 für Linux - Benutzerhandbuch
Administratorhandbuch zur Verwaltung von USB-Ressourcen
Parallels Virtuozzo Containers 4.6 für Linux - Benutzerhandbuch
OpenVZ wiki

0dd5b9380c7d4884d77587f3eb0fa8ef 2897d76d56d2010f4e3a28f864d69223 e8e50b42231236b82df27684e7ec0beb d02f9caf3e11b191a38179103495106f a26b38f94253cdfbf1028d72cf3a498b

Email subscription for changes to this article
Save as PDF