Wie reserviere ich RAM auf der Hyper-V 2012-Hostpartition nur für VMs?

Wie reserviere ich RAM auf der Hyper-V 2012-Hostpartition nur für VMs?

Ich habe eine Situation, in der ein Hyper-V 2012-Clusterknoten keine 2 VMs unterstützen kann, obwohl ich denke, dass er das sollte. Derzeit spiele ich mit 96 GB RAM herum und möchte 2 VMs mit 47 GB laufen lassen (statischer RAM). Damit bleiben 2 GB für den Host übrig, was eigentlich ausreichend sein sollte. Ich kann die zweite VM jedoch nicht ausführen, da die Software beschwert, dass nicht genügend Speicher dafür vorhanden ist.

Als nächstes habe ich jede VM auf 46 GB reduziert, aber die 2 VMs werden immer noch nicht unterstützt. Wenn ich „taskmgr“ vom Knoten aus ausführe, werden 51 GB „in Verwendung“ und „44,9 GB“ verfügbar gemeldet. Ich verstehe nicht, warum eine 46 GB-VM einen 5 GB-Overhead in der Hostpartition verursachen würde. Wenn man sich die laufenden Prozesse ansieht, beträgt der aufgelistete RAM weniger als 500 MB.

Ich möchte Hyper-V anweisen, alles außer 2 GB ausdrücklich nur für die VM-Nutzung zu reservieren.

Darüber hinaus wäre es noch besser zu wissen, warum der Hypervisor 5 GB „braucht“. Gibt es eine Möglichkeit herauszufinden, was Hyper-V intern mit dem RAM macht? Oder gibt es für Hyper-V 2012 eine neue Berechnung, wie viel RAM der Host tatsächlich benötigt (da 2 GB nicht ausreichen)?

Bearbeiten - 14.02.2014

Nach einer Überprüfung von 4 verschiedenen Hyper-V Server 2012r2-Hosts und einem 2008r2 wächst der nicht ausgelagerte Pool linear mit dem physisch installierten RAM. Dabei spielt es keine Rolle, ob die CPU AMD oder Intel ist. Es spielt keine Rolle, ob der Host Teil eines Windows-Clusters ist oder nicht. Es spielt keine Rolle, ob der Host einer Domäne angehört oder nicht. Und es spielt keine Rolle, wie viele VMs auf dem Host laufen (oder wie viel RAM diese VMs verbrauchen). Abschließend halte ich dies auch für das Verhalten von 2012r1, da ich diese Symptome schon hatte, als die 2012r2-Hosts alle 2012r1 waren.

In allen Fällen habe ich festgestellt, dass die Multiplikation der Menge des installierten RAM (in GB) mit 0,0425 Ihnen sagt, wie viel RAM (in GB) an den Nonpaged Pool verloren geht. (Es ist einsehrSchätzung nahe dran.)

Bis Microsoft also seine Software repariert oder offiziell zugibt, dass dieses Verhalten beabsichtigt ist, besteht die Lösung darin, die allgemein verwendete Berechnung zu verwenden (wie in der Antwort unten dargestellt) und dann das Ergebnis der obigen Berechnung hinzuzufügen, um den RAM zu berücksichtigen, den Sie an den nicht ausgelagerten Pool verlieren. (Oder, wenn Sie möchten, habe ich hier eine Zusammenfassung mit Beispielen.)

PS: Ich halte es für wichtig, darauf hinzuweisen, dass ich „GB“ geschrieben habe, aber nur das verwende, was Windows meldet. Die von Windows und RAMMap gemeldeten Zahlen sind nicht GB/KB, sondern tatsächlich GiB/KiB. Multiplizieren Sie also das Ergebnis der Berechnung des nicht ausgelagerten Pools mit 1024, um es mit der von RAMMap gemeldeten „K“-Zahl zu vergleichen.

Antwort1

Quelle

300 MB für den Hypervisor plus 32 MB für das erste GB RAM, das jeder virtuellen Maschine zugewiesen wird, plus weitere 8 MB für jedes weitere GB RAM, das jeder virtuellen Maschine zugewiesen wird, plus 512 MB für das Host-Betriebssystem, das auf der Root-Partition ausgeführt wird.

Als allgemeine Faustregel sollten Sie mindestens 512 MB Speicher für die Root-Partition reservieren, um Dienste wie E/A-Virtualisierung, Unterstützung von Snapshot-Dateien und Verwaltung untergeordneter Partitionen bereitzustellen.

300+32+(45*8)=692MB Für die erste VM

692+32+(45*8)=1084 für beide VMs

1084+512=1596MB Gesamtabrechnung als Faustregel

Dies wäre also nur der Hypervisor-Verbrauch. Wenn man nun bedenkt, dass Sie mehr als 5 GB verbraucht haben, selbst wenn die erste VM bereitgestellt ist, würde ich vorschlagen, sich die Ausgabe der Taskliste in der Eingabeaufforderung anzusehen und nach Serverprozessen zu suchen, die RAM verbrauchen

verwandte Informationen