Ich habe zwei Gastbetriebssysteme auf einer Ubuntu-Box eingerichtet, die als VM-Host dient. Sie hat zwei physische CPUs (mit jeweils 6 Kernen), 16 GB RAM und 3 Festplatten. Das Hostbetriebssystem befindet sich auf einer 60 GB SSD, während sich die Gastbetriebssysteme auf ihrer separaten Festplatte befinden, die in zwei Partitionen aufgeteilt ist. Die erste Partition enthält eine rohe QCow-Image-Datei für das Gastbetriebssystem und die zweite Partition ist dem Gast als Blockgerät zugewiesen. (für „Programme“ und „Daten“) Ich habe Memory Ballooning auf dem Linux-Gast aktiviert, aber nicht auf dem Windows.
Ich hatte gestern zum ersten Mal Probleme mit zu wenig Arbeitsspeicher und beschloss, die Speichernutzung der Gäste in Echtzeit auf meinem eigenen Computer zu beobachten. Ich habe also zwei htops in zwei Putty-Fenstern laufen, wie Sie auf dem beigefügten Bild sehen können. Oben auf dem Bild ist der Host, unten einer der Gäste (das Linux). Es gibt ein paar Dinge, die ich nicht verstehe:
- Auf dem Host zeigt die Spalte „RES“ 5778 M für den ersten Gast und 4274 M für den anderen an, was für mich ungefähr 10 G ergibt, aber die Zeile „Mem“ oben im Bild zeigt 6,9 G an, was seltsam ist. Darüber hinaus zeigt das Client-Htop unten an, dass 560 M Speicher verwendet werden. (560 M != 5778 M)
Ich habe die Redhat-Dokumente zur Virtualisierung gelesen und dort steht, dass ich die für den Gast benötigte RAM-Menge berechnen soll, indem ich den dem Gast zugewiesenen Speicher + Video-RAM + „etwas“ Overhead (der nicht genau bestimmt werden kann) addiere. Unter Verwendung der obigen Zahlen ergibt sich also: 560 M werden vom Gast verwendet + 16 M Videospeicher sind ~580 M, also beträgt der „etwas“ Overhead in meinem Fall 5,2 G?
Die 5778 MB sind nicht der gesamte Speicher, den der Linux-Gast verwenden kann. In der XML-Domänendatei sind 8 GB eingestellt, daher bin ich nicht frustriert. Noch nicht.
Als ich heute Morgen den Linux-Gast neu gestartet habe, war die RAM-Nutzung auf dem Host zunächst bei ~2 GB und seitdem steigt sie stetig an. Das Gastbetriebssystem startete mit ~450 MB und stieg auf 560 MB.
Ich habe sogar gelesen, dass das Zuweisen einer Auslagerungsdatei zum Host bei Speicherproblemen helfen kann. Daher habe ich eine 32-GB-Auslagerungsdatei erstellt und die Swapiness in sysctl auf dem Host auf 20 gesetzt.
Aber ich verstehe immer noch nicht die Speichernutzung/-zuweisung/was auch immer zwischen dem Gast und dem Host.
Könnte mir jemand mit mehr Erfahrung auf diesem Gebiet die richtige Richtung weisen / mir ein Tutorial / Wikipedia / was auch immer ich lesen möchte? QEMU-Host-Gast-Htops