Libvirt Memory Management Host und Gast

369
tom

Ich habe zwei Gäste eingerichtet, eine Ubuntu-Box als VM-Host. Es verfügt über zwei physische CPU (mit jeweils 6 Kernen), 16 GB RAM und 3 Festplatten. Host os befindet sich auf einer 60-GB-SSD, während sich die Gäste auf ihrer separaten Festplatte in zwei Partitionen befinden. Die erste Partition enthält eine rohe qcow-Image-Datei für das Gast-Betriebssystem, und die zweite Partition wird dem Gast als Blockgerät zugewiesen. (für "Programme" und "Daten") Ich habe auf dem Linux-Gast die Speicherbelegung aktiviert, aber nicht auf den Fenstern.

Ich hatte erst gestern mein erstes Out-of-Memory-Erlebnis, also beschloss ich, die Speichernutzung der Gäste auf meinem eigenen Computer in Echtzeit zu verfolgen. Ich habe also zwei Htops, die in zwei Kittfenstern laufen, wie Sie auf dem beigefügten Bild sehen können. Oben auf dem Bild ist der Gastgeber, unten ist einer der Gäste (der Linux). Es gibt einige Dinge, die ich nicht verstehe:

  • Auf dem Host der RES-Spalte steht 5778M für den ersten Gast und 4274M für den anderen, was für mich bis zu ~ 10 G angezeigt wird, aber die Mem-Zeile oben im Bild zeigt 6,9 G, was seltsam ist, außerdem der Client oben sagt, dass 560 MB Arbeitsspeicher verwendet wird. (560M! = 5778M)

Ich habe die redhat-Dokumente über Virtualisierung gelesen, und ich sage, ich sollte die Menge an RAM berechnen, die für den Gast benötigt wird, indem der dem Gast zugewiesene Speicher + Video-RAM + "etwas" -Zuschlag (der nicht genau bestimmt werden kann) addiert wird Die obigen Zahlen: 560M wird vom Gast verwendet. Der 16M-Videospeicher beträgt ~ 580M. Der "einige" Aufwand in meinem Fall ist 5.2G?

Der 5778M ist nicht der Gesamtspeicher, den der Linux-Gast verwenden kann, 8G ist in der Domain-XML-Datei festgelegt, daher bin ich nicht frustriert. Noch.

Als ich heute morgen den Linux-Gast neu gestartet habe, begann er mit ~ 2G RAM-Auslastung auf dem Host und ist seitdem gestiegen. Der Gast begann mit ~ 450M und ging bis 560M.

Ich habe sogar gelesen, dass das Zuweisen einer Auslagerungsdatei an den Host bei Problemen mit dem Arbeitsspeicher helfen kann. Daher habe ich eine 32G-Auslagerungsdatei erstellt und in sysctl auf dem Host die Auslagerungszeit auf 20 gesetzt.

Aber ich verstehe immer noch nicht, dass die Speicherbelegung / Zuordnung / was auch immer zwischen dem Gast und dem Host liegt.

Könnte jemand mit mehr Erfahrung auf diesem Gebiet mich in die richtige Richtung weisen / Tutorial / wikipedia / whatevertoread? qemu host guest htops

1

0 Antworten auf die Frage