Ich verwende VirtualBox auf einem Windows XP-Computer mit 2 GB RAM. Ich habe eine virtuelle Ubuntu-Maschine erstellt und ihr einen Hauptspeicher von 750 MB zugewiesen.
Um es auf die Probe zu stellen, habe ich auf der virtuellen Maschine 20 Dinge gleichzeitig ausgeführt. Laut "top" in Ubuntu wurden 750 Megabyte Arbeitsspeicher sowie ein beträchtlicher Swap-Platz verbraucht.
Zurück im Windows Task-Manager verwendete VitrualBox jedoch nur 45.000 KB Arbeitsspeicher. Als ich die virtuelle Maschine aufforderte, mehr und mehr zu tun, stieg die CPU-Auslastung des VirtualBox-Prozesses (unter Windows), die Speichernutzung blieb jedoch gleich.
Wie kann eine virtuelle Maschine, die 750 MB Arbeitsspeicher verwendet, nur 45 MB Arbeitsspeicher auf einer physischen Maschine belegen?
Ich nehme an, die Antwort ist, dass die virtuelle Maschine keinen realen Speicher verwendet, sondern simulierten Speicher (dh Swap Space), aber es fühlt sich sicher bissig an, als würde sie im RAM laufen.
UPDATE: Ich habe wie vorgeschlagen mit Perfmon rumgespielt. Selbst wenn ich alles zusammenfasse, was mir einfällt, scheint es immer noch weniger als 300 Megabyte zu beanspruchen ... es ist also immer noch ein Rätsel.
Process VirtualBox VirtualBox#1 Total
PoolNonpagedBytes 5,840 42,552 48,392
PoolPagedBytes 119,796 166,892 286,688
PrivateBytes 8,884,224 52,719,616 61,603,840
VirtualBytes 75,939,840 161,202,176 237,142,016
Sum 84,949,700 214,131,236 299,080,936
quelle
Bei einigen Virtualisierungslösungen unter Linux wird der Host-Kernel aufgrund der Art und Weise, in der der Arbeitsspeicher zugewiesen wird, als spezielle Speicherzuordnungsdatei angezeigt (ähnlich wie bei der
/proc/kcore
speziellen Datei), sodass er in der Anzahl der zwischengespeicherten Elemente in der Ausgabe vonfree
und nicht von gezählt wird "used" zählen.Ich gehe davon aus, dass in Ihrer Windows-Umgebung etwas Ähnliches passiert: Die 45 MB werden von den Verwaltungsprozessen von VirtualBox verwendet, und die der VM selbst zugewiesenen 750 werden an anderer Stelle gezählt.
quelle
Es kann sich um virtuellen Speicher, Speicherzuordnungsdateien oder ähnliches handeln.
Haben Sie versucht, andere Spalten im Task-Manager anzuzeigen?
quelle
Glauben Sie nicht, Task-Manager. Es kann nicht alles sehen.
Dieses Problem tritt häufiger bei SQL Server auf. Mit SQL habe ich noch nie jemanden gefunden, der mir einen Weg aufgezeigt hat, genaue Informationen vom Task-Manager abzurufen andere Spalten.
quelle