KVM meldet seltsame CPU-Auslastungsspitzen (Bash Infinite Recursion)

7

Auf einem KVM-Computer, auf dem Fedora 20 ausgeführt wird, wurde I ausgeführt ulimit -s unlimited(dies beseitigt die Beschränkung der Stapelgröße) und ein experimentelles Foltertestskript . Alles, was dieses Skript tut, ist nur eine unendliche Rekursion:

#!/bin/bash

fn() {
    true
    fn
}

fn

Was ich erwartet hatte, war, dass die CPU-Auslastung auf 100% steigen würde und nach einer gewissen Ressourcenverarmung (die lange dauern könnte) die Bash schließlich vom Kernel abgeschossen würde.

Aber was wirklich passiert ist, ist etwas seltsam und ich habe nicht das richtige Wissen, um es zu erklären:

  • Innerhalb der VM meldet top 100% CPU-Auslastung durch dieses lustige Skript. Das macht Sinn.

  • Aber von außen zeigt virt-manager 0% keine CPU-Auslastung, erwarten Sie wiederkehrende scharfe 100% Spitzen. Und als ob das nicht seltsam genug wäre, nimmt die zwischen den einzelnen aufeinanderfolgenden Peaks beobachtete Verzögerung zu (schließlich hört die Verzögerung auf zu wachsen und wird gleichzeitig):

CPU-Auslastungsspitzen

Warum ist das? Was passiert eigentlich im Inneren? Oder ist die von virt-manager gemeldete Nutzung irreführend? Was erzeugt dann das Muster zwischen den Spitzen?

Alois Mahdal
quelle

Antworten:

1

Wenn Sie top in der virtuellen Maschine verwenden, haben Sie festgestellt, dass die CPU-Auslastung etwa 100% beträgt. In Ihrem physischen Host kann die virtuelle Maschine jedoch nicht die gesamte CPU-Zeit nutzen. Dies liegt daran, dass eine kvm-VM aus Kernel-Sicht ein normaler Vorgang ist Daher teilt der Kernel-Prozessplaner die CPU mit anderen Prozessen

c4f4t0r
quelle