Arbeitsspeicher-Nutzung von VMs
Guten Morgen,
ich habe mal in Bezug auf die Arbeitsspeicherbelegung von VMs eine Frage.
Wir haben mehrere ESX 5 Server und bekommen mittlerweile etwas Arbeitsspeicher-Probleme da jede Maschine den konfigurierten Speicher fest belegt. Bei der CPU-Nutzung ist dies jedoch dynamisch und die Maschine belegt nur das, was Sie derzeit verbraucht. Ist das mit dem RAM ebenfalls einstellbar? Bisher habe ich dies leider nicht finden können und befürchte, dass
diese Einstellung nicht möglich ist. Wenn nein, warum?
Gruß,
davinci
ich habe mal in Bezug auf die Arbeitsspeicherbelegung von VMs eine Frage.
Wir haben mehrere ESX 5 Server und bekommen mittlerweile etwas Arbeitsspeicher-Probleme da jede Maschine den konfigurierten Speicher fest belegt. Bei der CPU-Nutzung ist dies jedoch dynamisch und die Maschine belegt nur das, was Sie derzeit verbraucht. Ist das mit dem RAM ebenfalls einstellbar? Bisher habe ich dies leider nicht finden können und befürchte, dass
diese Einstellung nicht möglich ist. Wenn nein, warum?
Gruß,
davinci
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194265
Url: https://administrator.de/forum/arbeitsspeicher-nutzung-von-vms-194265.html
Ausgedruckt am: 24.12.2024 um 16:12 Uhr
4 Kommentare
Neuester Kommentar
Sers & Jein.
Was am ehesten auf dein Anforderungsprofil passt wäre Thin Provisioning für den Arbeitsspeicher. Gibt nur ein Problem bei der Sache: Es funktioniert wie bei der HDD-Version. Sprich, wenn du mehr brauchst als da ist schmiert die Sache ab.
Beispiel:
Host: 16GB RAM (der ESX verbraucht in diesem Beispiel keinen Arbeitsspeicher)
VM1: 8 GB vRAM
VM2: 8 GB vRAM
VM3: 8 GB vRAM
Nehmen wir mal an die drei VMs fressen/belegen im Normalfall 4 GB vRAM. Dann läuft das wunderbar und es steht auch genug Reserve für die einzelnen VMs zur Verfügung wenn sie temporär mal etwas mehr Speicher (e.g. 7GB) brauchen, etwa bei einer täglichen Aufgabe die nur 1 Std läuft.
Alles soweit prima, du stellst die Zeiten so ein dass zwischen den Jobs ordentlich Puffer zwischen den VMs haben.
Und jetzt passiert es, VM1 wird nicht rechtzeitig fertig. Die Speicherbelegung auf dem Host ist 15 (7+4+4) von 16 GB. Jetzt fängt VM2 an mehr Speicher zu belegen. Und in dem Moment wo VM2 ein Byte über 5 GB belegen will crasht dir deine VM2.
Wenn du Glück hast schmiert dein Host nicht mit ab.
Der Vorteil vom vmWare Ansatz ist der dass, solang man einen Überblick über den Ressourcenverbrauch hat und gegebenenfalls einzelne VMs temporär verschieben oder zumindest pausieren/beenden kann ist das alles ok und vor allem von den Performancekosten her recht neutral, also angenehm. Weiterer Vorteil ist dass das absolut unabhängig vom Gast-OS klappt.
Es gibt auch andere Ansätze, wie den von Microsoft. Deren Hyper-V kann, wenn das Gast-OS es unterstützt, dynamisch Speicher geben und nehmen. Stell es dir vor als ob da ein Männle auf dem virtuellen Mainboard steht und RAM-Riegel reinsteckt und rauszieht. Im laufenden Betrieb versteht sich.
Über einen Priorisierungsprozentsatz wird bestimmt welche VMs wieviel vom Gesamtspeicher bekommen wenn er denn mal knapp werden sollte. Und mit einem weiteren Prozentsatz wird bestimmt wieviel Speicher der einzelnen VM über ihrem derzeitigen Verbrauch zugeordnet werden soll, bzw. wieviel Speicher sie mindestens und höchstens bekommt.
Das kostet allerdings etwas Performance, da sich das Gast-OS jedes mal anpassen muss. Ist nicht viel, aber es kann, je nach Anwendung, zu Problemen führen.
Was beide Ansätze gemein haben ist dass sich der vRAM einer laufen VM *NIEMALS* an irgend einer anderen Stelle befindet als im Arbeitsspeicher ihres Hostes. Und darin liegt eben auch die Crux der Sache.
& Sorry für die WoT, wurde doch etwas viel.
Grüße,
Philip
Was am ehesten auf dein Anforderungsprofil passt wäre Thin Provisioning für den Arbeitsspeicher. Gibt nur ein Problem bei der Sache: Es funktioniert wie bei der HDD-Version. Sprich, wenn du mehr brauchst als da ist schmiert die Sache ab.
Beispiel:
Host: 16GB RAM (der ESX verbraucht in diesem Beispiel keinen Arbeitsspeicher)
VM1: 8 GB vRAM
VM2: 8 GB vRAM
VM3: 8 GB vRAM
Nehmen wir mal an die drei VMs fressen/belegen im Normalfall 4 GB vRAM. Dann läuft das wunderbar und es steht auch genug Reserve für die einzelnen VMs zur Verfügung wenn sie temporär mal etwas mehr Speicher (e.g. 7GB) brauchen, etwa bei einer täglichen Aufgabe die nur 1 Std läuft.
Alles soweit prima, du stellst die Zeiten so ein dass zwischen den Jobs ordentlich Puffer zwischen den VMs haben.
Und jetzt passiert es, VM1 wird nicht rechtzeitig fertig. Die Speicherbelegung auf dem Host ist 15 (7+4+4) von 16 GB. Jetzt fängt VM2 an mehr Speicher zu belegen. Und in dem Moment wo VM2 ein Byte über 5 GB belegen will crasht dir deine VM2.
Wenn du Glück hast schmiert dein Host nicht mit ab.
Der Vorteil vom vmWare Ansatz ist der dass, solang man einen Überblick über den Ressourcenverbrauch hat und gegebenenfalls einzelne VMs temporär verschieben oder zumindest pausieren/beenden kann ist das alles ok und vor allem von den Performancekosten her recht neutral, also angenehm. Weiterer Vorteil ist dass das absolut unabhängig vom Gast-OS klappt.
Es gibt auch andere Ansätze, wie den von Microsoft. Deren Hyper-V kann, wenn das Gast-OS es unterstützt, dynamisch Speicher geben und nehmen. Stell es dir vor als ob da ein Männle auf dem virtuellen Mainboard steht und RAM-Riegel reinsteckt und rauszieht. Im laufenden Betrieb versteht sich.
Über einen Priorisierungsprozentsatz wird bestimmt welche VMs wieviel vom Gesamtspeicher bekommen wenn er denn mal knapp werden sollte. Und mit einem weiteren Prozentsatz wird bestimmt wieviel Speicher der einzelnen VM über ihrem derzeitigen Verbrauch zugeordnet werden soll, bzw. wieviel Speicher sie mindestens und höchstens bekommt.
Das kostet allerdings etwas Performance, da sich das Gast-OS jedes mal anpassen muss. Ist nicht viel, aber es kann, je nach Anwendung, zu Problemen führen.
Was beide Ansätze gemein haben ist dass sich der vRAM einer laufen VM *NIEMALS* an irgend einer anderen Stelle befindet als im Arbeitsspeicher ihres Hostes. Und darin liegt eben auch die Crux der Sache.
& Sorry für die WoT, wurde doch etwas viel.
Grüße,
Philip
Hallo davinci,
gegebenenfalls schau mal im Form deutsches VMware Forum nach.
Hier findest Du weitere Spezialisten in Bezug VMware.
Gruss Penny.
gegebenenfalls schau mal im Form deutsches VMware Forum nach.
Hier findest Du weitere Spezialisten in Bezug VMware.
Gruss Penny.
Nene, musst keine 1000 Seiten studieren. vmWare hat da völlig recht mit der Aussage dass 0 Reserve unzulässig ist. Es sei denn du willst den Kaffeeverbrauch im Büro steigern und verordnest Kaffeekonsum in den 5 Minuten oder so die es dauert bis der nächste Client voll da ist. Geht natürlich auch.
Mir scheint das eigentliche Problem in deiner Virtualisierungsumgebung unausreichender RAM auf dem Host zu sein. Kostet doch eigentlich fast nichts mehr heutzutage.
Und wenn mehr RAM keine Option sind, dann wirst wohl mal schaun müssen wie es mit ThinProvisioning für den vRAM der Clients ausschaut. Risiken & Probleme, siehe oben.
Ansonsten ist der Vorschlag von @Penny.Cilin sicher nicht verkehrt, das Forum hat sicher einiges zu bieten.
Grüße,
Philip
Mir scheint das eigentliche Problem in deiner Virtualisierungsumgebung unausreichender RAM auf dem Host zu sein. Kostet doch eigentlich fast nichts mehr heutzutage.
Und wenn mehr RAM keine Option sind, dann wirst wohl mal schaun müssen wie es mit ThinProvisioning für den vRAM der Clients ausschaut. Risiken & Probleme, siehe oben.
Ansonsten ist der Vorschlag von @Penny.Cilin sicher nicht verkehrt, das Forum hat sicher einiges zu bieten.
Grüße,
Philip