Bei ESX gibt es Memory Sharing, man kann mehreren VMs mehr zuweisen als der Host insgesamt hat. Das Sharing funktioniert aber nur wenn das Gast OS gleich ist. Jedoch nimmt sich das Gast nur den Teil den er braucht, wodurch man auch Overprovisioning machen kann. Entscheidend ist der Gesamtverbrauch. Ich glaube aber nicht das eine VM bei dir wirklich 32GB braucht.
Das kann man so nicht sagen...
Der ESX kann nicht unterscheiden, was da wie wann wer an RAM wirklich benötigt. Zumindest nicht wirklich effektiv.
Es ist somit absolut nicht zu empfehlen, mehr RAM zuzuteilen, als auch vorhanden ist. Speziel trifft diese Empfehlung dort zu, wo man mit OSen arbeitet, die intelligenterweise den RAM als Filecache nutzen. Was mittlerweile im *nix/Windows Bereich gang und gebe ist. Laufen die Kisten dauerhaft (also 24/7) kommt es sehr schnell vor, das ungenutzter RAM als Filecache in der VM belegt wird. Somit wird der ESX Host gezwungen, der VM auch all diesen RAM zu geben.
Kommt es nun zu einem Engpass, weil mehr RAM ausgeteilt wird, als vorhanden ist, wird der ESX Host anfangen zu swappen. Und das lässt die Performance extremst in den Keller schnellen.
Auch kommt hinzu, das der ESX Host nicht wie das VM OS selbst intelligent den Speicher auslagern kann. Da er nicht weis (entgegen dem OS in der VM), welche Daten im Zugriff sind und wie sich das Zugriffsmuster verhällt.
Zusammengefasst, bei Gast OSen mit RAM Cache und/oder Diensten, die allen RAM auch belegen wollen (Exchange, SQL usw.) ist ein überbuchen der Performancetod!
Ja, das stimmt sicher was du sagst.
Grundsätzlich wollte ich eben nur wissen, ob es nagative Auswirkungen hat, wenn man mehr virtuellen Speicher (in der Summe) verteilt, als tatsächlich vorhanden.
Wenn ich das richtig verstanden habe ist es demnach kein Problem.
Siehe oben, mach es nicht...
Ich gehe sogar soweit, das 24+8 zwar 32GB sind. Aber du vergisst, auch der Host will etwas RAM für sich (~1GB)
Dazu kommt, die VMs selbst benötigen Hostseitig immer etwas mehr physischen RAM als man ihr zuteilt. So hat ne 8GB Maschine also vllt 8,5-9GB physisch in Benutzung, wenn sie ihren zugeteilten RAM auch ausnutzen kann. Du überbuchst also mit 8+24GB + Host + das, was noch oben drauf kommt, schon den Host. -> klar nicht zu empfehlen.
Den RAM zu überbuchen macht genau dort Sinn, wo du steuern kannst, wer wann wie viel RAM benötigt.
Beispielsweise kann es je nach Anforderung an die VMs vorkommen, dass in Stoßzeiten mehr RAM benötigt wird. In einem starren Konstrukt muss du hier also den zugeteilten virtuellen RAM an diesen Stoßzeiten messen.
Es würde sich also anbieten, hier in den Stoßzeiten zu überbuchen, wenn sicher gestellt ist, das in den Stoßzeiten beispielsweise andere Systeme weniger als üblich an RAM vertilgen.
Leider ist mittlerweile diese Steuerung so ohne weiteres nicht mehr machbar. Stichwort wie oben, Filecache. Oder Dienste, die den RAM auch vollknallen, den es gibt.
Meine Empfehlung wäre hier, Exchange mit 16GB + 8GB für die Windows 7 Kiste. Der Rest als Luft für später.
Je nach Anforderungen an den Exchange geht das schon sehr gut. Vor allem ist es oftmals durchaus vertretbar, wenn der Exchange beim Browsen riesiger Postfächer mal ne Gedenksekunde benötigt, weil dies idR nicht das typische Nutzerverhalten ist. Der reine Exchangebetrieb wird dabei nämlich idR nicht wirklich beeinträchtigt.