Ich habe einen Linux-Host mit 4 KVM-Linux-Gästen. Alle Gäste sind ziemlich untätig und haben eine Last von <0,1 im Gast.
Wenn ich jetzt eine top
auf dem Host mache , verbraucht jeder KVM-Prozess ungefähr 30% der CPU.
Ist das ein normales Verhalten? Ich würde erwarten, dass der Host viel weniger CPU benötigt, nur um einen inaktiven Gast zu hosten.
Wenn es normal ist, was ist der Grund dafür?
Wenn es nicht normal ist, was könnte das Problem sein?
performance
cpu
kvm
virtualization
michas
quelle
quelle
Antworten:
Als Zyniker könnte ich sagen, dass dies für Windows-Gäste "normal" ist, aber nicht für Linux-Gäste (zumindest habe ich nie gesehen, dass sich einer so verhält).
Unter Windows hängt dies stark von den ausgeführten Anwendungen ab (nahezu im Leerlauf). Ein einfaches XP oder W2K (ich habe noch keine Erfahrung mit neueren Versionen in KVM) verursacht 10% bis 20% auf dem Host (wird ungefähr 0% innerhalb angezeigt), aber MS SQL Server erreicht dies leicht über 30%. Dies scheint irgendwie mit dem Timer-Zugriff und / oder ACPI zu tun zu haben. Aber selbst in einer Nicht-ACPI-VM habe ich Windows nie unter 10% auf dem Host.
Bearbeiten 1 (Kommentare integrieren)
Was ist die Ausgabe von
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(im Gast)? Das sollte kvm-clock sein. Überprüfen Sie Ihre Kernelkonfiguration (/proc/config.gz) auf CONFIG_PARAVIRT_CLOCK und CONFIG_KVM_CLOCK.Dies ist eine Liste der für KVM relevanten Kernel-Konfigurationsoptionen .
quelle
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
?acpi_pm
im Gast undtsc
auf dem Host. In jedem Gast wird kein X, sondern ein Java-Anwendungsserver und eine Oracle-Datenbank ausgeführt.kvm-clock
stattdessen sein (im Gast). Ich musste das nie explizit konfigurieren. Überprüfen Sie Ihre Kernel-Konfiguration (/proc/config.gz
) aufCONFIG_PARAVIRT_CLOCK
undCONFIG_KVM_CLOCK
.y
. Wenn Sie current_clocksource auf setzen, werdenkvm-clock
die Dinge besser. Jetzt liegt jeder KVM-Prozess bei rund 20 Prozent. Das System wurde von einem früheren Virtualbox-Setup auf KVM migriert. Scheint, als ob einige Einstellungen noch aus dem alten Setup stammen ...Ich würde überprüfen, ob die KVM-Gäste bereitgestellt werden, damit sie alle Ressourcen des Hosts (CPU, RAM usw.) nutzen können. Normalerweise werden KVM-Gästen nur 1-2 CPUs (Kerne) auf einem System zugewiesen, das möglicherweise viel mehr enthält.
Dies würde bedeuten, dass Sie nicht genau dasselbe vergleichen, wenn Sie die Ressourcen des Hosts mit den Interna eines bestimmten KVM-Gastes betrachten.
Zum Beispiel
Der Host hat Folgendes:
Während einer der KVM-Gäste dies hat:
quelle