Wie wird Speicher im ESXi-Server zugewiesen?


17

Wir haben einen ESXi 4.1 Server mit 48 GB RAM.

Für jede VM werden 4 GB Arbeitsspeicher zugewiesen. Da der Server 13 virtuelle Maschinen haben wird, hält mein Manager dies für falsch.

Ich werde ihnen erklären, dass ESXi den Speicher selbst verwaltet, aber sie fragten mich, wie viel Speicher ich dem ESXi-Server selbst zugewiesen habe.

Ich habe keine zugewiesen (ich habe noch nicht einmal von einer Option zum Zuweisen von Speicher für den ESXi-Server selbst gehört).

Wie wird dem ESXi-Server Speicher zugewiesen? Wie wird der Arbeitsspeicher ohne Probleme übermäßig zugewiesen / auf die virtuellen Maschinen verteilt?

Antworten:


26

Hier geht es um viel mehr als nur um ESXi.

  1. Jede VM verbraucht bis zu 4 GB + "Overhead", was hier dokumentiert ist . Dies hängt von den zugewiesenen vCPUs und dem zugewiesenen Speicher ab. Mindestens 4261,98 MB für jede VM (4096 + 165,98)
  2. ESXis eigener Speicherbedarf ist hardwareabhängig. Die einfachste Möglichkeit ist , am schauen System - Speichernutzung im vSphere - Client. Aus dem Speicher erinnere ich mich, dass es um die 1,3 GB Marke ist, aber wie gesagt, das ist sehr abhängig von der Hardware.

Speicherzuweisung und Überbelegung erklärt

Beachten Sie, dass der Hypervisor nicht den gesamten Arbeitsspeicher im Voraus zuweist , sondern von der Nutzung der VM abhängig ist. Es lohnt sich jedoch zu verstehen, was passieren wird, wenn die VMs versuchen, den gesamten ihnen zugewiesenen Speicher zuzuweisen und zu nutzen.

Das Maximum, das Ihr VM + -Host zu verwenden versucht, liegt bei ungefähr 55 GB. Die Laufleistung kann variieren

  • Von ESXi verwendete 1,3 GB
  • 4261,98 MB * 13, die von den VMs verwendet werden

Es gibt noch einen weiteren Aspekt, der berücksichtigt werden muss, nämlich Speichergrenzwerte. Standardmäßig strebt VMware eine freie Kapazität von 6% an (hohe Speicherschwelle). Daher müssen die 55 GB des verwendeten Arbeitsspeichers auf ~ 45 GB reduziert werden

Das bedeutet, dass der Host ungefähr 10.500 MB Speicherplatz hat, den er zurückfordern muss, wenn die VMs den zugewiesenen Speicher verwenden. Es gibt drei Möglichkeiten, mit denen ESX diese zusätzlichen 10,5 GB ermittelt.

Memory Reclamation Methods

  1. Transparente gemeinsame Nutzung von Seiten
  2. Memory Ballooning
  3. Hypervisor-Tausch

Sie sollten das Grundlegende zur Speicherressourcenverwaltung in VMware® ESX ™ Server lesen und verstehen .

Abhängig von einer Vielzahl von Faktoren kann / wird eine Kombination aller drei Faktoren auf einem überbeanspruchten Host auftreten. Sie müssen Ihre Umgebung testen und diese Metriken überwachen, um die Auswirkungen eines zu hohen Commits zu verstehen.

Einige grobe Regeln, die es zu beachten gilt (alle in der obigen Veröffentlichung und in anderen Quellen).

  1. Für VMs, die Seiten mit 2/4 MB verwenden , findet keine transparente gemeinsame Nutzung von Seiten statt. Da Sie Ihren Windows-VMs 4096 MB zugewiesen haben, werden standardmäßig 2/4 MB Seiten verwendet (PAE-abhängig). Nur unter Speicherdruck kann VMware die großen Seiten auf 4 KB Seiten aufteilen, die gemeinsam genutzt werden können. TPS ist darauf angewiesen, inaktive CPU-Zyklen zu verwenden und Speicherseiten mit einer bestimmten Rate zu scannen. Es gibt den Speicher relativ langsam zurück (man denke eher an eine Stunde als an Minuten). Ein Bootsturm bedeutet also, dass TPS Ihnen nicht weiterhilft. Von den dreien hat dies die geringste Auswirkung auf die Leistung. Mehr aus dem Dokument,

Bei Systemen mit hardwaregestützter Speichervirtualisierung (z. B. Intel EPT Hardware Assist und AMD RVI Hardware Assist [6]) sichert ESX automatisch physische Gastseiten mit großen physischen Hostseiten (2 MB zusammenhängender Speicherbereich anstelle von 4 KB für reguläre Seiten) für Bessere Leistung durch weniger TLB-Ausfälle. In solchen Systemen wird ESX diese großen Seiten nicht freigeben, weil: 1) die Wahrscheinlichkeit, zwei große Seiten mit identischem Inhalt zu finden, gering ist und 2) der Aufwand für die Durchführung eines bitweisen Vergleichs für eine 2-MB-Seite viel größer ist als für eine 4KB Seite. ESX generiert jedoch weiterhin Hashes für die 4-KB-Seiten auf jeder großen Seite. Da ESX beim Host-Austausch keine großen Seiten auslagert, Die große Seite wird in kleine Seiten aufgeteilt, sodass diese vorgenerierten Hashes verwendet werden können, um die kleinen Seiten vor dem Auslagern freizugeben. Kurz gesagt, wir beobachten möglicherweise keine gemeinsame Nutzung von Seiten für hardwaregestützte Speichervirtualisierungssysteme, bis der Hostspeicher überlastet ist.

  1. Die Ballonfahrt beginnt als nächstes (Schwellenwerte sind konfigurierbar. Standardmäßig ist dies der Fall, wenn der Host weniger als 6% freien Speicher hat (zwischen Hoch und Software). Stellen Sie sicher, dass Sie den Treiber installieren und generell auf Java und verwaltete Anwendungen achten . Das Betriebssystem hat keine Ahnung, was der Garbage Collector als Nächstes tun wird, und es trifft auf Seiten, die auf die Festplatte ausgelagert wurden. Es ist nicht ungewöhnlich, dass Server, auf denen Java-Anwendungen ausschließlich ausgeführt werden, Swap vollständig deaktivieren, um zu gewährleisten, dass dies nicht geschieht. Weitere Informationen finden Sie unter Seite 17 von vSphere Memory Management, SPECjbb

  2. Ein Hypervisor-Austausch von den drei Methoden ist die einzige, die gewährleistet, dass dem Hypervisor in einer festgelegten Zeit "Speicher" zur Verfügung steht. Dies wird verwendet, wenn 1 & 2 nicht ihm genügend Speicher gibt unter der bleibt hart Schwelle (Standard von 2% freien Speicher). Wenn Sie die Leistungsmetriken durchlesen (machen Sie Ihre eigenen), werden Sie feststellen, dass dies die schlechteste Leistung der drei ist. Vermeiden Sie dies unbedingt, da die Auswirkungen auf die Leistung bei fast allen Anwendungen im zweistelligen Prozentbereich spürbar sind

  3. Es gibt noch einen Status, der als niedrig eingestuft werden muss (standardmäßig 1%). Aus dem Handbuch kann dies Ihre Leistung drastisch verringern,

In einem seltenen Fall, in dem der freie Hostspeicher unter den unteren Schwellenwert fällt, fordert der Hypervisor weiterhin Speicher durch Auslagerung und Speicherkomprimierung an und blockiert zusätzlich die Ausführung aller virtuellen Maschinen, die mehr Speicher belegen als ihre Zielspeicherzuordnungen.

Zusammenfassung

Der entscheidende Punkt, der betont werden muss, ist, dass es unmöglich ist, anhand der Whitepapers vorherzusagen, wie sich Ihre Umgebung verhält.

  1. Wie viel kann TPS Ihnen geben? (Abhängig davon, wie ähnlich Ihre VMs dem Betriebssystem, dem Service Pack und den ausgeführten Anwendungen sind.)
  2. Wie schnell ordnen Ihre VMs Ihren Speicher zu? Je schneller sie dies tun, desto wahrscheinlicher ist es, dass Sie zum nächsten Schwellenwert springen, bevor das weniger effektive Speicherwiederherstellungsschema es schafft, Sie auf Ihrem aktuellen Schwellenwert zu halten.
  3. Je nach Anwendung hat jedes Speicherwiederherstellungsschema sehr unterschiedliche Auswirkungen.

Testen Sie Ihre durchschnittlichen Szenarien, Sie sind ein 95% -Perzentilszenario und schließlich Ihr Maximum, um zu verstehen, wie Ihre Umgebung ausgeführt wird.


Bearbeiten 1

Erwähnenswert ist, dass es mit vSphere 4 (oder 4.1, das nicht zurückgerufen werden kann) jetzt möglich ist, den Hypervisor-Swap auf der lokalen Festplatte zu platzieren, die VM jedoch weiterhin zu vmotionieren . Wenn Sie gemeinsam genutzten Speicher verwenden, empfehle ich dringend, die Hypervisor-Auslagerungsdatei standardmäßig auf die lokale Festplatte zu verschieben. Auf diese Weise wird sichergestellt, dass sich ein Host, der einem hohen Speicherdruck ausgesetzt ist, nicht auf alle anderen vSphere-Hosts / VMs auf demselben gemeinsam genutzten Speicher auswirkt.

Bearbeiten 2

Aufgrund von Kommentaren wurde die Tatsache, dass ESX den Speicher nicht im Voraus zuweist, fett hervorgehoben ...

Bearbeiten 3

Erläuterte ein wenig mehr über Gedächtnisschwellen.


1
VMware nicht assign Speicher, der nicht verwendet wird; Der eigentliche Grund, warum ein Überladen funktioniert, besteht darin, dass der VM nur dann die maximale Menge an Speicher zugewiesen wird, wenn sie danach fragt . Sobald alles zugewiesen ist, werden vom Swap zusätzliche Speicheranforderungen gestellt.
23.

1
Haben Sie dieses Bit gesehen, bevor Sie diesen Kommentar hinzugefügt haben? "Beachten Sie, dass der Hypervisor nicht den gesamten Arbeitsspeicher im Voraus zuweist, sondern von der Nutzung der VM abhängig ist. Es lohnt sich jedoch zu verstehen, was passieren wird, wenn die VMs versuchen, den gesamten ihnen zugewiesenen Arbeitsspeicher zuzuweisen und zu nutzen"
M Afifi

Da dies offensichtlich eines der Hauptanliegen des OP war (WIE zaubert VMware Speicher, den ich NICHT HABE?), Sollte es nicht nachträglich ganz oben auf der Liste stehen. Sie erklären Speichernutzung nach hinten durch Rekultivierung zu erklären. Warum ?
23.

Wie ist es rückwärts? Die Antwort sagt, dies ist, wie viel Speicher Sie zugewiesen haben. Es wird es nicht im Voraus zuweisen. Wenn dies der Fall ist (basierend auf der VM-Speichernutzung), ist dies die Auswirkung. Kann nicht wirklich jemandem sagen, dass er sich keine Sorgen macht. Wenn Sie den Speicher überbelegen, sollten Sie die Auswirkungen kennen.
M Afifi

4

VMware (und andere Virtualisierungstechnologien) teilen Ressourcen (Speicher, Prozessorzeit, E / A verschiedener Art) zwischen VMs nach verschiedenen Algorithmen.

Es ist posssible zu overcommit Ressourcen, da nicht alle VMs werden alle Verarbeitungs-, Speicher- oder I / O verwenden , dass sie die ganze Zeit brauchen. Das Handbuch zur Ressourcenverwaltung von VMware ist wahrscheinlich der beste Ort, um zu erfahren, was in ESXi möglich ist.

Sie können die Auswirkung der Algorithmen auch steuern, indem Sie verschiedene VMs für verschiedene Ressourcen gewichten. Beispielsweise können Sie einer Anwendungsserver-VM eine höhere Gewichtung für den Prozessor als einer Dateiserver-VM zuweisen. Die Standardeinstellungen werden jedoch die meisten Anforderungen sehr gut erfüllen. In einigen Fällen reicht eine Konfiguration aus, um Manager zu beruhigen, die es nicht ganz verstehen. Seien Sie jedoch vorsichtig und lesen Sie die Dokumente für Ihre VMware-Version und verstehen Sie, was Sie tun. Wenn Ihr Manager keine weitere Einweisung benötigt, verwenden Sie einfach die Standardeinstellungen.

Beachten Sie, dass Überbeanspruchung nicht immer eine gute Idee ist, insbesondere wenn Sie auf einem einzelnen Server virtualisiert haben. Sie sollten den Ressourcenverbrauch in Ihrem ESXi-Estate überwachen und bei Bedarf zusätzliche Hosts / Ressourcen hinzufügen, wenn Sie häufig eine oder mehrere Ressourcen verbrauchen.


2

Lassen Sie Ihre VMWare ESXi-Installation damit umgehen. Sie können die RAM-Ressourcen auf VMWare-Systemen aufgrund der Verwendung von Techniken zur Speichererhöhung, Komprimierung und Deduplizierung überbeanspruchen .

Wenn die virtuellen Maschinen ein ähnliches Betriebssystem verwenden, gibt es dort einige Einsparungen. Stellen Sie sicher, dass die VMWare-Tools in den Gast-VMs aktiviert sind, um diese Funktionen voll nutzen zu können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.