Frage Gibt es einen Grund, einer VM einen runden Basis-2-Speicher (2048 MB, 4096 MB, usw.) zu geben?


Der Titel sagt ziemlich alles, gibt es einen Vorteil, eine VM 2048MB Speicher zu geben, anstatt auf Basis 10 zu runden und 2000MB zu machen?


24
2018-04-06 18:29


Ursprung




Antworten:


Der physische Speicher im Server ist ein Vielfaches einer Zweierpotenz, sodass er bei Verwendung anderer Multiples gleichmäßig abgeschnitten wird. Es kann einige sehr kleine Verbesserungen mit SLAT geben, wenn sie richtig ausgerichtet sind. Ansonsten nein.


10
2018-04-06 19:09



Die Seiten sind meistens 4 KiB oder 2 MiB - es gibt keine wirklichen Probleme mit sogar 1234 MiB zu schneiden, oder? - poige
@poige So gut ich weiß, ja, keine Probleme ... Wir würden wirklich jemanden brauchen, der SLAT (et alii) von innen und außen für eine definitive Antwort kennt. - Chris S


Hyper-V weist intern Speicher in 2 MB-Blöcken zu. Der Hypervisor selbst verwendet, wenn möglich, 2 MB Seitentabelleneinträge für Effizienz, wenn Ihr Prozessor Second Level Address Translation (SLAT) unterstützt. Dies wird für so ziemlich jede VM mit deaktiviertem dynamischem Speicher möglich sein.

Ansonsten ist es egal.


13
2018-04-09 19:12





Nur um zu klären, was die anderen Antworten gesagt haben; Das Limit, das hier definiert wird, ist im Grunde 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 Inkrementen (d. H. 4 KB). Wenn Sie also die virtuelle Maschine mit 4097 KB RAM definiert haben und Ihre Host-VM eine Seitengröße von 4 KB verwendet hat, würde die virtuelle Maschine wahrscheinlich insgesamt 4100 KB RAM bereitstellen.

Wenn das Gastbetriebssystem jedoch eine Seitengröße von 1 KB verwendet und Ihr Host-Betriebssystem eine Seitengröße von 4 KB verwendet, würde das Hostbetriebssystem im Wesentlichen 4 KB Speicherplatz zur Verfügung stellen, von dem nur 1 KB verwendet wird - aber das ist von allen Stücke von Speicher. Sie werden also nie wirklich viel Platz verschwenden.

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


7
2018-04-07 00:28



Dies trifft unter bestimmten Umständen nicht zu: Beispielsweise kann die VM-Software den gesamten angeforderten RAM-Betrag (zuzüglich aller für die Grafikkarte erforderlichen und anderen erforderlichen Anforderungen) reservieren oder bei Verwendung der Hardware-Unterstützung für verschachtelte Paging- / erweiterte Seitentabellen den Gast verwaltet effektiv die physikalischen Seiten des Speichers unter Verwendung der CPU-Hardware. Außerdem würde die Reservierung von 4097 KB Speicher höchstwahrscheinlich 4100 KB physikalischen RAM zuweisen, obwohl nur 4097 KB tatsächlich vom Gastbetriebssystem adressiert werden könnten. - Goyuix
Ich sehe nicht, wie das, was Sie gesagt haben, im Widerspruch zu meiner Antwort steht. Könnten Sie das näher ausführen? - Andrew M.
Das mag deine Absicht gewesen sein, aber beim Lesen deiner Antwort als "Du könntest im Prinzip niemals dieses zusätzliche 1KB verwenden" - versuchte ich klarzustellen, dass das Gastbetriebssystem (theoretisch) dieses RAM verwenden könnte, obwohl 3/4 der Die 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 würden. Seitenausrichtungsprobleme sind nur ein Teil der Kompromisse, die in Betracht gezogen werden müssten, und meiner Meinung nach könnte die Antwort verbessert werden, indem die relevanten Auswirkungen speziell erwähnt werden. - Goyuix
Ah, ich sehe, wo ich falsch gelaufen bin. So habe ich mir das vorgestellt, aber ich muss es in meinen verschiedenen Revisionen losgeworden sein. Ich habe es aktualisiert, um diesen Punkt zu verdeutlichen. :) - Andrew M.


Ich vermute, dass es eine Frage der Tradition ist und sie an die Art und Weise anpassen, wie physische Systeme gebaut werden. Physische Systeme haben Speicher in der Basis 2-Mengen (und am wenigsten mit jedem x86 jemals gemacht, das ist wahr), und die Chancen sind einige, wenn nicht viele Betriebssysteme dies in der Verwaltung von Speicher erwarten würde.

Kurz gesagt, es ist wirklich so, weil eine virtuelle Maschine eher eine reale als eine hypothetische Maschine widerspiegelt. Keine sehr technische Antwort, aber ich denke, das ist die echte Antwort


3
2018-04-08 03:07





Nicht wirklich. Der dynamische Hyper-v-Speicher weist nur das zu, was das System ohnehin verwendet. Die Menge, die Sie zuweisen, ist der Startwert. Wenn Sie keinen dynamischen Speicher verwenden, ist der einzige Vorteil, den ich sehen kann, eine bessere Ausrichtung des physischen Speichers auf virtuell.


1
2018-04-06 18:41



serverfault.com/questions/377391/ ... - poige
-1. Siehe, Hyper-V hat keinen dynamischen Speicher, wenn KEINE KONFIGURIERT ist. Und raten Sie mal, was - manchmal macht es Sinn, das nicht zu verwenden (Speicherplatz braucht Zeit, also will ein Datenbankserver zum Beispiel alles). Daher ist die generische Antwort nicht relevant und - eigentlich - überhaupt nicht gefragt. - TomTom