VM-Arbeitsspeicher
Wenn Sie eine VM erstellen, wird der VM ein fester Arbeitsspeicher zugewiesen. Sie können Dynamic Memory Control (DMC) verwenden, um die Auslastung des physischen Arbeitsspeichers in Ihrer XenServer®-Umgebung zu verbessern. DMC ist eine Speicherverwaltungsfunktion, die die dynamische Neuzuweisung von Arbeitsspeicher zwischen VMs ermöglicht.
XenCenter bietet eine grafische Anzeige der Speichernutzung auf der Registerkarte Arbeitsspeicher. Weitere Informationen finden Sie in der XenCenter-Dokumentation.
Dynamic Memory Control (DMC) bietet die folgenden Vorteile:
-
Sie können Arbeitsspeicher hinzufügen oder löschen, ohne die VMs neu starten zu müssen, was dem Benutzer ein nahtloses Erlebnis bietet.
-
Wenn Hosts voll sind, ermöglicht DMC das Starten weiterer VMs auf diesen Hosts, wodurch die den laufenden VMs zugewiesene Speichermenge proportional reduziert wird.
Was ist Dynamic Memory Control (DMC)?
XenServer DMC passt den Arbeitsspeicher laufender VMs automatisch an und hält die jeder VM zugewiesene Speichermenge zwischen den angegebenen minimalen und maximalen Speicherwerten, wodurch die Leistung garantiert und eine höhere Dichte von VMs pro Host ermöglicht wird.
Ohne DMC schlägt das Starten zusätzlicher VMs mit „Out of Memory“-Fehlern fehl, wenn ein Host voll ist. Um die vorhandene VM-Speicherzuweisung zu reduzieren und Platz für weitere VMs zu schaffen, bearbeiten Sie die Speicherzuweisung jeder VM und starten Sie die VM dann neu. Bei Verwendung von DMC versucht XenServer, Arbeitsspeicher zurückzugewinnen, indem die aktuelle Speicherzuweisung laufender VMs innerhalb ihrer definierten Speicherbereiche automatisch reduziert wird. XenServer versucht, Arbeitsspeicher zurückzugewinnen, selbst wenn der Host voll ist.
Hinweise:
Dynamic Memory Control wird bei VMs mit einer virtuellen GPU nicht unterstützt.
Das Konzept des dynamischen Bereichs
Für jede VM kann der Administrator einen dynamischen Speicherbereich festlegen. Der dynamische Speicherbereich ist der Bereich, innerhalb dessen Arbeitsspeicher zur VM hinzugefügt/entfernt werden kann, ohne einen Neustart zu erfordern. Während eine VM läuft, kann der Administrator den dynamischen Bereich anpassen. XenServer garantiert immer, dass die der VM zugewiesene Speichermenge innerhalb des dynamischen Bereichs bleibt. Daher kann eine Anpassung während des Betriebs der VM dazu führen, dass XenServer die der VM zugewiesene Speichermenge anpasst. Der extremste Fall ist, wenn der Administrator den dynamischen Min/Max-Wert auf denselben Wert setzt, wodurch XenServer gezwungen wird, sicherzustellen, dass diese Speichermenge der VM zugewiesen wird. Wenn neue VMs auf „vollen“ Hosts gestartet werden müssen, wird der Arbeitsspeicher der laufenden VMs „gequetscht“, um neue zu starten. Der benötigte zusätzliche Arbeitsspeicher wird durch proportionales Quetschen der vorhandenen laufenden VMs innerhalb ihrer vordefinierten dynamischen Bereiche gewonnen.
Mit DMC können Sie dynamische minimale und maximale Speichergrenzen konfigurieren – wodurch ein Dynamic Memory Range (DMR) erstellt wird, in dem die VM arbeitet.
-
Dynamischer Mindestspeicher: Eine untere Speichergrenze, die Sie der VM zuweisen.
-
Dynamisches oberes Limit: Eine obere Speichergrenze, die Sie der VM zuweisen.
Wenn beispielsweise der dynamische Mindestspeicher auf 512 MB und der dynamische Maximale Speicher auf 1.024 MB eingestellt wurde, ergibt sich für die VM ein dynamischer Speicherbereich (DMR) von 512–1024 MB, innerhalb dessen sie arbeitet. XenServer garantiert bei Verwendung von DMC immer, jeder VM Speicher innerhalb ihres angegebenen DMR zuzuweisen.
Das Konzept des statischen Bereichs
Viele von XenServer unterstützte Betriebssysteme verstehen das dynamische Hinzufügen oder Löschen von Speicher nicht vollständig. Infolgedessen muss XenServer die maximale Speichermenge deklarieren, die eine VM zum Zeitpunkt ihres Neustarts verbrauchen soll. Die Deklaration der maximalen Speichermenge ermöglicht es dem Gastbetriebssystem, seine Seitentabellen und andere Speicherverwaltungsstrukturen entsprechend zu dimensionieren. Dies führt das Konzept eines statischen Speicherbereichs innerhalb von XenServer ein. Der statische Speicherbereich kann nicht angepasst werden, während die VM läuft. Für einen bestimmten Start ist der dynamische Bereich so eingeschränkt, dass er immer innerhalb dieses statischen Bereichs liegt. Das statische Minimum (die Untergrenze des statischen Bereichs) schützt den Administrator und wird auf die geringste Speichermenge festgelegt, mit der das Betriebssystem unter XenServer ausgeführt werden kann.
Hinweis:
Wir empfehlen, das statische Mindestniveau nicht zu ändern, da es pro Betriebssystem auf dem unterstützten Niveau festgelegt ist. Weitere Details finden Sie in der Tabelle der Speicherbeschränkungen.
Das Festlegen eines statischen Maximums, das höher ist als ein dynamisches Maximum, ermöglicht es Ihnen, einer VM in Zukunft mehr Speicher zuzuweisen, ohne die VM neu starten zu müssen.
DMC-Verhalten
Automatisches VM-Squeezing
-
Wenn DMC nicht aktiviert ist und Hosts voll sind, schlagen neue VM-Starts mit „Out of Memory“-Fehlern fehl.
-
Wenn DMC aktiviert ist, versucht XenServer, selbst wenn Hosts voll sind, Speicher zurückzugewinnen, indem die Speicherzuweisung laufender VMs innerhalb ihrer definierten dynamischen Bereiche reduziert wird. Auf diese Weise werden laufende VMs proportional im gleichen Abstand zwischen dem dynamischen Minimum und dem dynamischen Maximum für alle VMs auf dem Host „gequetscht“.
Wenn DMC aktiviert ist
-
Wenn der Speicher des Hosts reichlich vorhanden ist – Alle laufenden VMs erhalten ihr dynamisches Maximum an Speicher.
-
Wenn der Speicher des Hosts knapp ist – Alle laufenden VMs erhalten ihr dynamisches Minimum an Speicher.
Wenn Sie DMC konfigurieren, denken Sie daran, dass die Zuweisung einer geringen Speichermenge zu einer VM negative Auswirkungen haben kann. Zum Beispiel führt die Zuweisung von zu wenig Speicher zu:
-
Die Verwendung von Dynamic Memory Control zur Reduzierung des einem VM zur Verfügung stehenden physischen Speichers kann dazu führen, dass sie langsam neu startet. Ebenso kann eine VM langsam starten, wenn Sie ihr zu wenig Speicher zuweisen.
-
Wenn das dynamische Speicher-Minimum für eine VM zu niedrig eingestellt wird, kann dies beim Starten der VM zu Leistungseinbußen oder Stabilitätsproblemen führen.
Wie funktioniert DMC?
Mit DMC ist es möglich, eine Gast-VM in einem von zwei Modi zu betreiben:
-
Zielmodus (Target Mode): Der Administrator gibt ein Speicherziel für den Gast an. XenServer passt die Speicherzuweisung des Gasts an, um das Ziel zu erreichen. Die Angabe eines Ziels ist in virtuellen Serverumgebungen und in Situationen nützlich, in denen Sie genau wissen, wie viel Speicher ein Gast verwenden soll. XenServer passt die Speicherzuweisung des Gasts an, um das von Ihnen angegebene Ziel zu erreichen.
-
Dynamischer Bereichsmodus (Dynamic Range Mode): Der Administrator gibt einen dynamischen Speicherbereich für den Gast an. XenServer wählt ein Ziel aus diesem Bereich aus und passt die Speicherzuweisung des Gasts an, um das Ziel zu erreichen. Die Angabe eines dynamischen Bereichs ist in jeder Situation nützlich, in der XenServer den Hostspeicher dynamisch neu partitionieren soll, um auf eine sich ändernde Anzahl von Gästen oder einen sich ändernden Hostspeicherdruck zu reagieren. XenServer wählt ein Ziel innerhalb des Bereichs aus und passt die Speicherzuweisung des Gasts an, um das Ziel zu erreichen.
Hinweis:
Es ist jederzeit möglich, für jeden laufenden Gast zwischen dem Zielmodus und dem dynamischen Bereichsmodus zu wechseln. Geben Sie ein neues Ziel oder einen neuen dynamischen Bereich an, und XenServer erledigt den Rest.
Speicherbeschränkungen
XenServer ermöglicht Administratoren die Verwendung aller Speichersteuerungsoperationen mit jedem Gastbetriebssystem. XenServer erzwingt jedoch die folgende Reihenfolgebeschränkung für Speichereigenschaften für alle Gäste:
0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max
XenServer ermöglicht Administratoren, die Speichereigenschaften von Gästen auf beliebige Werte zu ändern, die diese Einschränkung erfüllen, vorbehaltlich von Validierungsprüfungen. Zusätzlich zu der vorherigen Einschränkung unterstützen wir jedoch nur bestimmte Gastspeicherkonfigurationen für jedes unterstützte Betriebssystem. Der Bereich der unterstützten Konfigurationen hängt vom verwendeten Gastbetriebssystem ab. XenServer hindert Administratoren nicht daran, Gäste so zu konfigurieren, dass sie das unterstützte Limit überschreiten. Kunden wird jedoch empfohlen, die Speichereigenschaften innerhalb der unterstützten Grenzen zu halten, um Leistungs- oder Stabilitätsprobleme zu vermeiden. Detaillierte Richtlinien zu den minimalen und maximalen Speicherlimits für jedes unterstützte Betriebssystem finden Sie unter Unterstützung für Gastbetriebssysteme.
Warnung:
Beim Konfigurieren des Gastspeichers raten wir dringend davon ab, die maximale Menge an physischem Speicher zu überschreiten, die von Ihrem Betriebssystem adressiert werden kann. Das Festlegen eines Speichermaximums, das größer ist als das vom Betriebssystem unterstützte Limit, kann zu Stabilitätsproblemen innerhalb Ihres Gasts führen.
Das dynamische Minimum muss für alle unterstützten Betriebssysteme mindestens 75 % des statischen Maximums betragen. Ein niedrigeres Limit kann zu Stabilitätsproblemen führen. Administratoren wird empfohlen, die Größen ihrer VMs sorgfältig zu kalibrieren und sicherzustellen, dass ihre Arbeitsanwendungen bei dynamischem Minimum zuverlässig funktionieren.
xe CLI-Befehle
Statische Speichereigenschaften einer VM anzeigen
-
Suchen Sie die UUID der erforderlichen VM:
xe vm-list <!--NeedCopy--> -
Notieren Sie die UUID und führen Sie dann den Befehl
param-name=memory-staticausxe vm-param-get uuid=uuid param-name=memory-static-{min,max} <!--NeedCopy-->Das folgende Beispiel zeigt die statischen maximalen Speichereigenschaften für die VM mit der UUID, die mit ec77 beginnt:
xe vm-param-get uuid= \ ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \ param-name=memory-static-max; 268435456 <!--NeedCopy-->Das Beispiel zeigt, dass der statische maximale Speicher für diese VM 268.435.456 Bytes (256 MB) beträgt.
Dynamische Speichereigenschaften einer VM anzeigen
Um die dynamischen Speichereigenschaften anzuzeigen, gehen Sie wie oben beschrieben vor, verwenden Sie jedoch den Befehl param-name=memory-dynamic:
-
Suchen Sie die UUID der erforderlichen VM:
xe vm-list <!--NeedCopy--> -
Notieren Sie die UUID und führen Sie dann den Befehl
param-name=memory-dynamicaus:xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max} <!--NeedCopy-->Das folgende Beispiel zeigt die dynamischen maximalen Speichereigenschaften für die VM mit der UUID, die mit ec77 beginnt
xe vm-param-get uuid= \ ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \ param-name=memory-dynamic-max; 134217728 <!--NeedCopy-->Das Beispiel zeigt, dass der dynamische maximale Speicher für diese VM 134.217.728 Bytes (128 MB) beträgt.
Speichereigenschaften aktualisieren
Warnung:
Verwenden Sie die richtige Reihenfolge beim Festlegen der statischen/dynamischen Minimum-/Maximum-Parameter. Außerdem dürfen Sie die folgende Einschränkung nicht ungültig machen:
0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max
Aktualisieren Sie den statischen Speicherbereich einer virtuellen Maschine:
xe vm-memory-static-range-set uuid=uuid min=value max=value
<!--NeedCopy-->
Aktualisieren Sie den dynamischen Speicherbereich einer virtuellen Maschine:
xe vm-memory-dynamic-range-set \
uuid=uuid min=value \
max=value
<!--NeedCopy-->
Die Angabe eines Ziels ist in virtuellen Serverumgebungen und in jeder Situation nützlich, in der Sie genau wissen, wie viel Speicher ein Gast verwenden soll. XenServer passt die Speicherzuweisung des Gastes an das von Ihnen angegebene Ziel an. Zum Beispiel:
xe vm-memory-target-set target=value vm=vm-name
<!--NeedCopy-->
Aktualisieren Sie alle Speicherlimits (statisch und dynamisch) einer virtuellen Maschine:
xe vm-memory-limits-set \
uuid=uuid \
static-min=value \
dynamic-min=value \
dynamic-max=value static-max=value
<!--NeedCopy-->
Hinweise:
- Um einer VM eine bestimmte, unveränderliche Speichermenge zuzuweisen, setzen Sie das dynamische Maximum und das dynamische Minimum auf denselben Wert.
- Sie können den dynamischen Speicher einer VM nicht über das statische Maximum hinaus erhöhen.
- Um das statische Maximum einer VM zu ändern, müssen Sie die VM herunterfahren.
Einzelne Speichereigenschaften aktualisieren
Warnung:
Ändern Sie nicht den statischen Mindestwert, da dieser auf dem unterstützten Niveau pro Betriebssystem festgelegt ist. Weitere Informationen finden Sie unter Speicherbeschränkungen.
Aktualisieren Sie die dynamischen Speichereigenschaften einer VM.
-
Suchen Sie die UUID der erforderlichen VM:
xe vm-list <!--NeedCopy--> -
Notieren Sie die UUID und verwenden Sie dann den Befehl
memory-dynamic-{min,max}=valuexe vm-param-set uuid=uuid memory-dynamic-{min,max}=value <!--NeedCopy-->
Das folgende Beispiel ändert das dynamische Maximum auf 128 MB:
xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB
<!--NeedCopy-->