Getestet zeigt das Ergebnis, dass der Gast NICHT mehr CPU-Prozessor als erforderlich beansprucht, selbst wenn der Linux-Scheduler arbeitsschonend ist.
Ich habe einige einfache Experimente mit einem Mikro-Benchmark durchgeführt, der im Grunde die CPU dreht. Der Host ist ein Dual-Core-Computer, auf dem KVM mit einem einzigen Gast-VM ausgeführt wird.
Ich führe mehrere Gastanwendungen gleichzeitig in der Gast-VM aus, um zu sehen, ob sie mehr CPU-Kapazität beanspruchen kann, als sie verdient. Das Ergebnis ist wie folgt:
Wenn die virtuelle Maschine mit einer virtuellen CPU konfiguriert ist, meldet sar ~ 100% CPU-Auslastung in der virtuellen Maschine und ~ 50% im Host. Der oberste Befehl im Host zeigt 2 KVM-Threads.
Wenn die VM mit 2 virtuellen CPUs konfiguriert ist, meldet sar ~ 100% CPU-Auslastung in VM und ~ 100% im Host. Der oberste Befehl im Host zeigt 3 KVM-Threads.
So meine Theorie ist, dass KVM einen einzigen Thread für jede virtuelle CPU zuweisen wird, und ein extra Thread für einige Management - Aktivität verwendet. Die VM mit einer einzelnen virtuellen CPU kann daher nicht in mehreren CPUs des Hosts gleichzeitig bedient werden.
Es stellt sich eine dumme Frage heraus :)