Citrix Hypervisor

VM-Speicher

Wenn Sie eine VM erstellen, wird der VM eine feste Menge an Arbeitsspeicher zugewiesen. Sie können Dynamic Memory Control (DMC) verwenden, um die Auslastung des physischen Speichers in der Citrix Hypervisor Umgebung zu verbessern. DMC ist eine Speicherverwaltungsfunktion, die eine dynamische Neuzuweisung von Speicher zwischen VMs ermöglicht.

XenCenter bietet eine grafische Anzeige der Speicherauslastung auf der Registerkarte “ Speicher “. Weitere Informationen finden Sie unter XenCenter-Dokumentation.

Dynamic Memory Control (DMC) bietet folgende Vorteile:

  • Sie können Speicher hinzufügen oder löschen, ohne die VMs neu zu starten, was dem Benutzer eine nahtlose Benutzererfahrung bietet.

  • Wenn die Server voll sind, können Sie mit DMC weitere VMs auf diesen Servern starten, wodurch die Menge an Speicher, die den ausgeführten VMs zugewiesen wird, proportional reduziert wird.

Was ist Dynamic Memory Control (DMC)?

Citrix Hypervisor DMC passt automatisch den Speicher ausgeführter VMs an, wobei die Speichermenge, die jeder VM zugewiesen wird, zwischen den angegebenen minimalen und maximalen Arbeitsspeicherwerten beibehalten wird, wodurch die Leistung gewährleistet wird und eine höhere Dichte der VMs pro Server ermöglicht wird.

Wenn ein Server voll ist, schlägt das Starten zusätzlicher VMs ohne DMC fehl, wenn kein Arbeitsspeicher vorhanden 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 neu. Bei Verwendung von DMC versucht Citrix Hypervisor, Arbeitsspeicher zurückzufordern, indem die aktuelle Speicherzuweisung ausgeführter VMs innerhalb der definierten Speicherbereiche automatisch reduziert wird. Citrix Hypervisor versucht, Speicher zurückzugewinnen, auch wenn der Server voll ist.

Hinweise:

  • Dynamic Memory Control ist in Citrix Hypervisor 8.1 veraltet und wird in einer zukünftigen Version entfernt.

  • 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, in dem Speicher hinzugefügt oder von der VM entfernt werden kann, ohne dass ein Neustart erforderlich ist. Wenn eine VM ausgeführt wird, kann der Administrator den Dynamikbereich anpassen. Citrix Hypervisor garantiert immer, dass der VM zugewiesene Arbeitsspeicher innerhalb des dynamischen Bereichs bleibt. Daher kann das Anpassen der VM dazu führen, dass Citrix Hypervisor die der VM zugewiesene Speichermenge anpasst. Der extremste Fall ist, wenn der Administrator die dynamische Min/Max auf den gleichen Wert setzt und Citrix Hypervisor dazu zwingt, sicherzustellen, dass diese Menge an Arbeitsspeicher der VM zugewiesen wird. Wenn neue VMs auf “vollen” Servern gestartet werden müssen, haben ausgeführte VMs den Arbeitsspeicher “gequetscht”, um neue zu starten. Der erforderliche zusätzliche Speicher wird erhalten, indem die vorhandenen ausgeführten VMs proportional innerhalb ihrer vordefinierten dynamischen Bereiche komprimiert werden.

Mit DMC können Sie dynamische minimale und maximale Arbeitsspeicherwerte konfigurieren und so einen Dynamic Memory Range (DMR) erstellen, in dem die VM arbeitet.

  • Dynamischer Mindestspeicher: Eine niedrigere Speichergrenze, die Sie der VM zuweisen.

  • Dynamisches höheres Limit: Eine obere Speichergrenze, die Sie der VM zuweisen.

Wenn beispielsweise der dynamische Mindestspeicher auf 512 MB festgelegt wurde und der dynamische Maximalspeicher auf 1.024 MB festgelegt wurde, erhält der VM einen Dynamic Memory Range (DMR) von 512 bis 1024 MB, in dem er arbeitet. Citrix Hypervisor garantiert, dass jeder VM-Speicher innerhalb der angegebenen DMR bei Verwendung von DMC immer zugewiesen wird.

Das Konzept des statischen Bereichs

Viele von Citrix Hypervisor unterstützte Betriebssysteme verstehen den Begriff des dynamischen Hinzufügens oder Löschens von Speicher nicht vollständig. Daher muss Citrix Hypervisor die maximale Speichermenge deklarieren, die eine VM zum Zeitpunkt des Neustarts benötigt. Das Deklarieren der maximalen Speichermenge ermöglicht es dem Gastbetriebssystem, seine Seitentabellen und andere Speicherverwaltungsstrukturen entsprechend zu dimensionieren. Dadurch wird das Konzept eines statischen Speicherbereichs in Citrix Hypervisor eingeführt. Der statische Speicherbereich kann nicht angepasst werden, wenn die VM ausgeführt wird. Bei einem bestimmten Start ist der Dynamikbereich eingeschränkt, so dass er immer in diesem statischen Bereich enthalten ist. Das statische Minimum (die untere Grenze des statischen Bereichs) schützt den Administrator und ist auf die niedrigste Speichermenge eingestellt, die das Betriebssystem mit Citrix Hypervisor ausführen kann.

Hinweis:

Es wird empfohlen, die statische Mindeststufe nicht zu ändern, da die statische Mindeststufe auf der unterstützten Ebene pro Betriebssystem festgelegt wird. Weitere Informationen finden Sie in der Tabelle Speichereinschränkungen.

Wenn Sie eine statische Maximalstufe höher als ein dynamisches Maximum festlegen, können Sie einer VM in Zukunft mehr Arbeitsspeicher zuweisen, ohne die VM neu zu starten.

DMC-Verhalten

Automatisches VM-Quetschen

  • Wenn DMC nicht aktiviert ist und Hosts voll sind, schlägt der Neustart der VM mit Fehlern “außer Arbeitsspeicher” fehl.

  • Wenn DMC aktiviert ist, auch wenn Hosts voll sind, versucht Citrix Hypervisor, Arbeitsspeicher zurückzufordern, indem die Speicherzuweisung ausgeführter VMs innerhalb der definierten dynamischen Bereiche reduziert wird. Auf diese Weise werden ausgeführte VMs proportional im gleichen Abstand zwischen dem dynamischen Minimum und dem dynamischen Maximum für alle VMs auf dem Host komprimiert.

Wenn DMC aktiviert ist

  • Wenn der Arbeitsspeicher des Hosts reichlich vorhanden ist, erhalten alle ausgeführten VMs den Dynamic Maximum Memory Level

  • Wenn der Arbeitsspeicher des Hosts knapp ist, erhalten alle ausgeführten VMs den Dynamic Minimal Memory Level.

Denken Sie bei der Konfiguration von DMC daran, dass die Zuweisung von nur einer geringen Menge an Arbeitsspeicher zu einer virtuellen Maschine dies negativ beeinflussen kann. Zum Beispiel, Zuweisen zu wenig Speicher:

  • Wenn Sie die dynamische Speichersteuerung verwenden, um den physischen Speicher zu reduzieren, der einer VM zur Verfügung steht, kann dies zu einem langsamen Neustart führen. Wenn Sie einer VM zu wenig Arbeitsspeicher zuweisen, kann sie auch langsam gestartet werden.

  • Das Festlegen des minimalen dynamischen Arbeitsspeichers für eine VM kann zu schlechten Leistungs- oder Stabilitätsproblemen führen, wenn die VM gestartet wird.

Wie funktioniert DMC?

Mit DMC ist es möglich, eine virtuelle Gastmaschine in einem von zwei Modi zu betreiben:

  1. Zielmodus: Der Administrator gibt ein Speicherziel für den Gast an. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das Ziel an. 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. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das von Ihnen angegebene Ziel an.

  2. Dynamischer Bereichsmodus: Der Administrator gibt einen dynamischen Speicherbereich für den Gast an. Citrix Hypervisor wählt ein Ziel aus dem Bereich aus und passt die Speicherzuweisung des Gastes an das Ziel an. Die Angabe eines dynamischen Bereichs ist in virtuellen Desktopumgebungen und in allen Situationen nützlich, in denen Citrix Hypervisor den Hostspeicher dynamisch neu partitionieren soll, wenn sich die Anzahl der Gäste ändert oder der Speicherdruck des Hosts ändert. Citrix Hypervisor wählt ein Ziel innerhalb des Bereichs aus und passt die Speicherzuweisung des Gastes an das Ziel an.

Hinweis:

Es ist jederzeit möglich, zwischen Ziel- und Dynamikbereichsmodus für jeden laufenden Gast zu wechseln. Geben Sie ein neues Ziel oder einen neuen Dynamikbereich an, und Citrix Hypervisor kümmert sich um den Rest.

Speichereinschränkungen

Citrix Hypervisor ermöglicht es Administratoren, alle Speichersteuerungsvorgänge mit jedem Gastbetriebssystem zu verwenden. Citrix Hypervisor erzwingt jedoch die folgende Speichereigenschaftenreihenfolge für alle Gäste:

0 memory-static-min memory-dynamic-min memory-dynamic-max memory-static-max

Citrix Hypervisor ermöglicht es Administratoren, die Eigenschaften des Gastspeichers in Werte zu ändern, die diese Einschränkung erfüllen, vorbehaltlich der Validierungsprüfungen. Zusätzlich zur vorherigen Einschränkung unterstützen wir jedoch nur bestimmte Gastspeicherkonfigurationen für jedes unterstützte Betriebssystem. Der Umfang der unterstützten Konfigurationen hängt vom verwendeten Gastbetriebssystem ab. Citrix Hypervisor hindert Administratoren nicht daran, Gäste so zu konfigurieren, dass sie das unterstützte Limit überschreiten. Kunden wird jedoch empfohlen, Speichereigenschaften innerhalb der unterstützten Grenzen zu halten, um Performance- oder Stabilitätsprobleme zu vermeiden. Ausführliche Richtlinien zu den minimalen und maximalen Speicherlimits für jedes unterstützte Betriebssystem finden Sie unter Unterstützung für Gastbetriebssysteme.

Warnung:

Bei der Konfiguration des Gastspeichers empfehlen wir, die maximale Menge an physischem Speicher, die von Ihrem Betriebssystem adressierbar ist, NICHT zu überschreiten. Wenn Sie ein Speichermaximum festlegen, das größer als das vom Betriebssystem unterstützte Limit ist, kann dies zu Stabilitätsproblemen innerhalb Ihres Gastes führen.

Das dynamische Minimum muss größer oder gleich einem Viertel des statischen Maximums für alle unterstützten Betriebssysteme sein. Eine Reduzierung der unteren Grenze unterhalb des dynamischen Minimums kann auch zu Stabilitätsproblemen führen. Administratoren werden aufgefordert, die Größe ihrer VMs sorgfältig zu kalibrieren und sicherzustellen, dass ihre funktionierenden Anwendungen bei minimaler Dynamik zuverlässig funktionieren.

xe CLI-Befehle

Anzeigen der statischen Speichereigenschaften einer VM

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    
  2. Notieren Sie sich die uuid, und führen Sie dann den Befehl param-name=memory-static

    xe vm-param-get uuid=uuid param-name=memory-static-{min,max}
    

    Im Folgenden werden beispielsweise die statischen Maximalspeichereigenschaften für die VM mit der UUID, die ec77 beginnt, angezeigt:

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-static-max;
        268435456
    

    Das Beispiel zeigt, dass der statische maximale Arbeitsspeicher für diese VM 268.435.456 Byte (256 MB) beträgt.

Anzeigen der dynamischen Speichereigenschaften einer VM

Um die Eigenschaften des dynamischen Speichers anzuzeigen, gehen Sie wie oben beschrieben vor, verwenden Sie jedoch den Befehl param-name=memory-dynamic:

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    
  2. Notieren Sie sich die uuid, und führen Sie dann den Befehl param-name=memory-dynamic aus :

    xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max}
    

    Im Folgenden werden beispielsweise die dynamischen maximalen Speichereigenschaften für die VM mit UUID ab ec77 angezeigt.

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-dynamic-max;
        134217728
    

    Das Beispiel zeigt, dass der dynamische Maximalspeicher für diese VM 134.217.728 Byte (128 MB) beträgt.

Aktualisieren der Speichereigenschaften

Warnung:

Verwenden Sie die richtige Reihenfolge, wenn Sie die statischen/dynamischen Minimum/Maximumparameter einstellen. Darüber hinaus 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=valuemax=value

Aktualisieren Sie den dynamischen Speicherbereich einer virtuellen Maschine:

xe vm-memory-dynamic-range-set \
      uuid=uuid min=value \
      max=value

Das Angeben eines Ziels ist in virtuellen Serverumgebungen nützlich und in jeder Situation, in der Sie genau wissen, wie viel Speicher ein Gast verwenden soll. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das von Ihnen angegebene Ziel an. Beispiel:

xe vm-target-set target=value vm=vm-name

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

Hinweise:

  • Um einer VM, die sich nicht ändert, eine bestimmte Speichermenge zuzuweisen, legen Sie das dynamische Maximum und das dynamische Minimum auf denselben Wert fest.
  • 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.

Aktualisieren einzelner Speichereigenschaften

Warnung:

Ändern Sie die statische Mindeststufe nicht, da sie auf der unterstützten Ebene pro Betriebssystem festgelegt ist. Weitere Informationen finden Sie unter Speichereinschränkungen.

Aktualisieren Sie die Eigenschaften des dynamischen Speichers einer VM.

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    
  2. Notieren Sie sich die uuid, und verwenden Sie dann den Befehl memory-dynamic-{min,max}=value

    xe vm-param-set uuid=uuidmemory-dynamic-{min,max}=value
    

Im folgenden Beispiel wird das dynamische Maximum auf 128 MB geändert:

xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB

VM-Speicher