davinci91
Goto Top

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

Content-Key: 194265

Url: https://administrator.de/contentid/194265

Printed on: April 19, 2024 at 04:04 o'clock

Member: psannz
psannz Nov 15, 2012 updated at 07:48:00 (UTC)
Goto Top
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
Member: davinci91
davinci91 Nov 15, 2012 at 08:09:36 (UTC)
Goto Top
Hallo Philip,

vielen vielen Dank für die gute Beschreibung!

Es geht in erster Linie nicht um Server sondern um unsere zero Clients.
Jeder Client hat 3 GB zugeordnet (was für uns als ein worse case Fall definiert wurde).

Nicht jeder Client benötigt dies, trotzdem möchte man aber etwas Puffer haben.
Ich muss mir dann wohl nochmal etwas Gedanken zur Planung der einzelnen Clients machen.

In diesem Zusammenhang hätte ich noch eine Frage, was sich allerdings auf VMWare View bezieht.
In unserem Pools haben wir die Bereitstellung aktiviert und immer um die 3-4 Client generiert.
Derzeit sind aber erst 1-2 aktiv und jedes mal wenn man sich an einem dieser Clients anmeldet,
startet eine weitere als Reserve Client. Soweit so gut ... was allerdings werden wieder 3GB belegt.

Unter den Bereitstellungsoptionen im VMWare View Administrator kann man die Anzahl der (eingeschalteten)
Reserve-Desktops einstellen. Jedoch ist die 0 als unzulässig. Gibt es da eine Möglichkeit? Oder muss ich
erst die 1000 Seiten Manual studieren? ;)

Schönen Tag noch!
Member: Penny.Cilin
Penny.Cilin Nov 15, 2012 updated at 08:18:01 (UTC)
Goto Top
Hallo davinci,

gegebenenfalls schau mal im Form deutsches VMware Forum nach.
Hier findest Du weitere Spezialisten in Bezug VMware.


Gruss Penny.
Member: psannz
psannz Nov 15, 2012 at 08:33:26 (UTC)
Goto Top
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