Gibt es einen Grund, einer VM eine runde Basis-2-Speichermenge (2048 MB, 4096 MB usw.) zuzuweisen?

26

Der Titel sagt eigentlich schon alles. Gibt es einen Vorteil, wenn Sie eine VM mit 2048 MB Arbeitsspeicher einrichten, anstatt auf Basis 10 zu runden und 2000 MB zu tun?

Nate
quelle

Antworten:

10

Der physische Speicher im Server ist ein Vielfaches der Zweierpotenz, sodass er gleichmäßig aufgeteilt wird, wenn Sie andere Vielfache verwenden. Es kann einige unglaublich kleine Verbesserungen mit SLAT geben und solche, wenn sie auch richtig ausgerichtet sind. Sonst nein

Chris S
quelle
Seiten sind meistens 4 KiB oder 2 MiB - es gibt keine wirklichen Probleme mit dem Schneiden von sogar 1234 MiB, oder?
Poige
1
@poige Soweit ich weiß, gibt es keine Probleme ... Wir brauchen wirklich jemanden, der SLAT (et alii) in- und auswendig kennt, um eine endgültige Antwort zu erhalten.
Chris S
13

Hyper-V weist intern Speicher in 2-MB-Blöcken zu. Der Hypervisor selbst verwendet aus Effizienzgründen 2 MB Seitentabelleneinträge, wenn Ihr Prozessor SLAT (Second-Level Address Translation) unterstützt. Dies ist für so gut wie jede VM möglich, deren dynamischer Speicher deaktiviert ist.

Ansonsten ist es egal.

Jake Oshins
quelle
7

Nur um zu verdeutlichen, was die anderen Antworten gesagt haben; Das hier definierte Limit gilt grundsätzlich für die Software Ihrer virtuellen Maschine, nicht für den Gast. Das heißt, wenn Ihr Gastbetriebssystem eine Speicherseite anfordert, geschieht dies in definierten Schritten (dh 4 KB). Wenn Sie also für die virtuelle Maschine eine RAM-Größe von 4097 KB definiert haben und Ihre Host-VM eine Seitengröße von 4 KB verwendet, werden der virtuellen Maschine wahrscheinlich insgesamt 4100 KB RAM zugewiesen.

Wenn das Gastbetriebssystem jedoch eine Seitengröße von 1 KB und Ihr Hostbetriebssystem eine Seitengröße von 4 KB verwenden würde, würde das Hostbetriebssystem im Wesentlichen 4 KB Speicherplatz einräumen, von dem nur 1 KB verwendet werden - aber das ist alles Erinnerungsstücke. Sie werden also nie wirklich eine erkennbare Menge an Speicherplatz verschwenden.

Zu beachten ist, dass die Ausrichtung zwischen dem Host-Betriebssystem und dem Gast-Betriebssystem hier kein Faktor ist, mit Ausnahme der letzten "Aus-Bits".

Andrew M.
quelle
Dies trifft unter bestimmten Umständen nicht zu: Beispielsweise kann die VM-Software den gesamten angeforderten RAM-Betrag (zuzüglich dessen, was für die Grafikkarte und andere sonstige Anforderungen erforderlich ist) oder bei Verwendung der Hardware-Unterstützung für verschachteltes Paging / erweiterte Seitentabellen - den Gast - reservieren Effizientes Management der physischen Speicherseiten mithilfe der CPU-Hardware. Wenn 4097 KB Arbeitsspeicher reserviert werden, werden höchstwahrscheinlich 4100 KB physischer Arbeitsspeicher zugewiesen, obwohl das Gastbetriebssystem nur 4097 KB tatsächlich adressieren kann.
Goyuix,
2
Ich sehe nicht, wie das, was Sie gesagt haben, meiner Antwort widerspricht. Könnten Sie näher darauf eingehen?
Andrew M.
Das mag Ihre Absicht gewesen sein, aber als Sie Ihre Antwort als "Sie würden im Grunde nie in der Lage sein, diese zusätzlichen 1 KB zu verwenden" lasen, versuchte ich zu klären, dass das Gastbetriebssystem (theoretisch) diesen Arbeitsspeicher verwenden könnte, obwohl 3/4 des Arbeitsspeichers physische Seite wäre wahrscheinlich unberührt. Deine Antwort liest sich für mich nicht so klar. Ich habe auch versucht, einige Schlüsselwörter / Technologien bereitzustellen, die sich auf diese Entscheidungen auswirken. Seitenausrichtungsprobleme sind nur ein Teil der Kompromisse, die in Betracht gezogen werden müssten, und ich war der Ansicht, dass die Antwort verbessert werden könnte, indem relevante Auswirkungen speziell erwähnt werden.
Goyuix
Ah, ich sehe, wo ich falsch gelaufen bin. Genau so habe ich es mir vorgestellt, aber ich muss es in meinen verschiedenen Revisionen losgeworden sein. Ich habe es aktualisiert, um diesen Punkt zu klären. :)
Andrew M.
3

Ich vermute, dass es eine Frage der Tradition ist, und es an der Art und Weise auszurichten, wie physikalische Systeme aufgebaut sind. Auf physischen Systemen ist der Arbeitsspeicher auf Basis 2 verfügbar (und dies gilt zumindest für alle x86-Systeme, die jemals hergestellt wurden), und es ist wahrscheinlich, dass einige Betriebssysteme dies beim Verwalten des Arbeitsspeichers erwarten.

Kurz gesagt: Eine virtuelle Maschine spiegelt eher eine reale als eine hypothetische Maschine wider. Keine sehr technische Antwort, aber ich denke, das ist die wirkliche

Geselle Geek
quelle
1

Nicht wirklich. Der dynamische Hyper-V-Speicher weist nur das zu, was das System ohnehin verwendet. Der Betrag, den Sie zuweisen, ist der Startwert. Wenn Sie keinen dynamischen Speicher verwenden, kann ich nur den Vorteil sehen, den physischen Speicher besser an den virtuellen auszurichten.

Jim B
quelle
-1. Siehe, Hyper-V hat keinen dynamischen Speicher, WENN KEINE KONFIGURIERT IST. Und raten Sie mal - manchmal ist es sinnvoll, das nicht zu verwenden (eine Zuordnung braucht Zeit, also möchte ein Datenbankserver zum Beispiel alles sofort). Insofern ist die generische Antwort nicht relevant und - eigentlich - überhaupt nicht das, wonach gefragt wurde.
TomTom