
Ich verwende QEMU mit KVM als Hypervisor. Ich führe einen Gentoo-Gast auf einem Ubuntu-Host aus. Dem Gast wird ein einzelner Prozessor zugewiesen.
Wenn ich einen rechenintensiven Job ausführe (z. B. eine leere Schleife), ist die CPU-Auslastung sowohl auf dem Gast als auch auf dem Host nahezu 100 %. Wenn ich jedoch ein hochauflösendes Video (1080p) abspiele, sehe ich, dass der Gast eine CPU-Auslastung von bis zu 100 % aufweist, während die durchschnittliche CPU-Auslastung des Hosts nur etwa 30–40 % beträgt. Ich frage mich, was die Ursache dafür sein könnte.
Wenn der Prozess festplattengebunden war, glaube ich, dass ein zweiter Durchlauf des Videos das Verhältnis der CPU-Auslastung zwischen Host und Gast verbessert hätte, da das Video in den Hauptspeicher geladen worden wäre (das Video ist ungefähr 1 Minute lang, 40 MB groß und der RAM des Gasts ist 4 GB groß), aber das passiert nicht. Was könnte dann diesen Unterschied in der CPU-Auslastung verursachen?
Ich verstehe nicht ganz, wie VLC mit H264-Videos umgeht. Es meldet, dass möglicherweise aufgrund eines langsamen Computers Frames verloren gehen. Ich kann nur vermuten, dass vielleicht eine Grafikkarte beteiligt ist, auf die QEMU wartet, und der Gast nichts von dieser Wartezeit mitbekommt.
Mein Host-Computer hat 12 Kerne mit 24 GB RAM.
BEARBEITEN :
Das Problem hatte nichts mit dem Ausführen einer virtuellen Maschine zu tun. Es lag daran, dass ich über SSH auf meine Testmaschine zugegriffen habe. Die X11-Weiterleitung hat die Leistung meines QEMU-Prozesses erheblich verlangsamt. Vielleicht ist es ähnlich wie bei einem normalen Programm, das langsamer wird, wenn wir zu viele Printf-Anweisungen haben. In meinem Fall wurde das Netzwerk zum Flaschenhals.