Virtueller Speicher in virtualisierten Maschinen (Datei in VM austauschen?)

7

Wie ist die Meinung zum Zulassen von virtuellem Speicher in einer virtuellen Maschine?

Zum Beispiel könnte ein Host-Computer mit 8 Gig Arbeitsspeicher 4 VMs mit jeweils 2 Gig (ungefähr) ausführen, und es würde kein Host-Austausch stattfinden. In jeder VM konnte ich jedoch eine 2Gig-Auslagerungsdatei haben, sodass der virtuelle Server 4Gig nutzbaren Speicher hatte, 2 physische 2 virtuelle.

ODER ... Ich könnte jeder VM 4 Gig "Speicher" geben und den Host 8 GB realen Speicher und 8 GB virtuellen Speicher verwenden lassen und keine Auslagerungsdatei in jeder VM haben. Jede VM hätte immer noch "4Gig", aber das Paging würde auf dem Host stattfinden.

Der warm-unscharfe Teil von mir sagt, dass Sie in jedem Gast Paging einrichten, als wären Sie ein echter Server und Sie sind gut. Die analytische Seite von mir sieht jedoch zwei wesentliche Vorteile darin, den Hostspeicher zu überlasten und kein Paging in der VM zu haben. Zuerst wird die E / A für den virtuellen Speicher vom Host-Betriebssystem verwaltet, das näher am Bare-Metal-System liegt, sodass es schneller sein sollte. Und zweitens wäre Paging nur erforderlich, wenn der Host nicht über den verfügbaren Speicher verfügt. Wenn der Gast 4Gig wollte, aber andere Gäste ihren Speicher nicht verwendeten, wäre kein Paging erforderlich.

Gedanken?

WaldenL
quelle

Antworten:

5

Ich bin kein Virtualisierungsexperte (tatsächlich denke ich, dass es meistens das falsche Tool für den Job ist), aber nach dem, was ich gelesen habe, sollte es Ihrem Gastbetriebssystem nicht gestattet sein, zu tauschen. Der Hauptgrund für die Verhinderung des Austauschs besteht darin, dass das Betriebssystem einen großen Teil der E / A-Bandbreite des Hosts beanspruchen kann.

Außerdem möchten Sie nicht vorgeben, dass der Host über mehr physischen Speicher verfügt als er hat, da dies zu einem starken Austausch des Hosts führt. Das Debuggen von Leistungsproblemen innerhalb der erratenen Betriebssysteme ist jedoch von ihrem Standpunkt aus sehr schwierig Aus Sicht der Ansicht tauschen sie nicht aus, und keines der Tools auf Betriebssystemebene im Gast zeigt dies an.

Möglicherweise können Sie sogar mit Tools wie Xen und VmWare den Speicher auf dem Host-Betriebssystem nicht überbeanspruchen, da Baloon-Speichertreiber verwendet werden.

Dave Cheney
quelle
4

Dies hängt stark von den Folgen einer Überlastung des Arbeitsspeichers auf Ihrem Host-Betriebssystem ab. Ich wäre ein bisschen mehr als verärgert, wenn ich zum Beispiel den Linux-Killer mit nicht genügend Speicher meine virtuelle Maschine töten lassen würde. Ich neige dazu, für jedes Gastbetriebssystem eine kleinere, separate, vorab zugewiesene, Snapshot-unabhängige (falls für Ihre VM-Lösung zutreffende) virtuelle Festplatte beiseite zu legen, sicherzustellen, dass die Datei, in der sich das Festplatten-Image befindet, nicht fragmentiert ist und / oder sich auf einem schnellen Laufwerk befindet, und zu konfigurieren Der Gast-Swap-Speicherplatz auf dieser virtuellen Festplatte. Die heutige Hypervisor-Speicherverwaltung ist gut genug, um den Unterschied zwischen dem Austausch von OOM-Hosts und dem Austausch von OOM-Gästen nicht zu spüren, und ich kann das Verhalten von Gästen unabhängig voneinander optimieren. Beste aus beiden Welten.

Mihai Limbăşan
quelle
1

Ich würde Ihrem Gast aufgrund von E / A-Problemen keinen virtuellen Speicher geben. Ich würde Ihrem Host auch nicht zu viel physischen Speicher und dem Gast zu viel physischen Speicher geben, da der Gast nicht erkennen würde, dass er eher virtuellen als physischen Speicher verwendet.

Sie haben also keine andere Lösung, als mehr Speicher zu kaufen. Sie können wirklich keine Alternative für mehr Speicher bekommen. Es ist so billig, wenn Ihr Server mehr unterstützt, würde ich mehr bekommen.

Adam Gibbins
quelle
Sie haben in der Post nicht erwähnt, welche Gast- oder Host-Betriebssysteme Sie verwenden möchten. Wenn Sie Windows-Hosts mit ESX virtualisieren möchten, können Sie deren fantastische Technologie zur Speicher-Deduplizierung verwenden, die dem Kopieren auf Schreibseiten für verschiedene Betriebssystemprozesse ähnelt, außer dass nach identischen Speicherseiten innerhalb und zwischen den Seiten gesucht wird hostet und ordnet sie derselben physischen Seite im Speicher zu. Die Verwendung von ESX zur Virtualisierung von Windows-Hosts zum Testen der Einsparungen beim physischen Speicherbedarf war erstaunlich.
Dave Cheney
1

Beim eigenen Austausch in VM geht es um eine bessere Isolierung von Ressourcen . Eine solche VM kann den Host mit seinen RAM-Anforderungen nicht nach unten ziehen - sie ist bereits eingeschränkt. Und wenn Sie andere Festplatten als das VM-System austauschen, können Sie sogar eine unsichere Cache-Richtlinie dafür haben.

Beim "externen" Tausch geht es jedoch eher um eine bessere Nutzung der Ressourcen.

Das ist es also: Isolation vs. Nutzung - Ihre Wahl.

poige
quelle