Pourquoi la machine virtuelle Windows inactive utilise-t-elle autant de CPU?

12

J'ai 2 machines virtuelles exécutées en tant qu'invités sur une plate-forme de virtualisation KVM fonctionnant sur Ubuntu 10.04. Une VM est un système Ubuntu 10.04, l'autre est un système Windows 7. Lorsque les deux machines sont complètement déconnectées, la machine Linux utilise 1% de CPU, celle de Windows 45-50%, selon le haut. Les graphiques de virt-manager semblent confirmer cela. Il n'y a rien installé sur l'image Win7 qui s'exécuterait en arrière-plan; c'est aussi frais que possible.

Pourquoi la machine virtuelle Windows utilise-t-elle tellement plus que la machine virtuelle Linux, alors que les deux sont déconnectés et inactifs?

Éditer:

J'ai installé l'invité avec le stockage paravirt et les pilotes réseau dès le départ. Je ne crois pas qu'il y ait d'autres pilotes qui me manquent, je me trompe?.

Selon le gestionnaire de tâches de l'invité, il est en effet inactif. Taskman prend environ 1 ou 2% du CPU invité, mais aucun autre processus ne prend de temps CPU.

Jeff Shattock
la source

Réponses:

4

Quelle version de QEMU-KVM utilisez-vous?

Nous avons vu ce problème sur les versions 0.12.3 et inférieures, mais il ne semble pas être trop un problème sur 0.12.4. Vérifiez également si les économiseurs d'écran fonctionnent. Si vous utilisez la connexion VNC, elle peut y être exécutée et l'utilisation du processeur ne sera pas à l'intérieur de la machine virtuelle - elle sera utilisée par le processus KVM.

trevoro
la source
1
0.12.3. Je vais construire en 0.12.4 et voir si cela disparaît.
Jeff Shattock
1
Et c'est vrai. Windows a trouvé un pilote pour un processeur virtuel Qemu 0.12.4, et ce problème a disparu après un redémarrage invité.
Jeff Shattock
7

Je sais que ma réponse vient après 100 ans mais: pour référence future, veuillez voir ici:

http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle

Si tel est le cas, voici la solution: http://support.microsoft.com/kb/895980

Il a fait chuter mon utilisation du processeur invité Win2K3 R2 (lorsque l'invité était inactif) sur mon hôte x86_64 kvm de ~ 30% -40% à 6%

Eugen
la source
2
Le fil sur Proxmox contient une information utile: retirer le matériel virtuel de la tablette USB de la machine virtuelle Windows diminuera le nombre de changements de contexte. Ma machine virtuelle Windows inactive est passée de 20% de CPU hôte à 5% de CPU hôte.
Colin 't Hart,
Merci, a travaillé pour moi. L'appareil virtuel de la tablette a envoyé des demandes d'interruption sans fin
michaelbn
1

Le fait que Windows soit fraîchement installé ne signifie pas qu'il n'exécute pas de processus ou de services en arrière-plan. Surveillez la machine Windows avec SNMP ou le gestionnaire de tâches et essayez de savoir si elle est effectivement inactive. Comme l'a dit Massimo, vous devez également installer des pilotes de pravirtualisation pour votre système d'exploitation invité. Je n'ai jamais vu une machine virtuelle inactive prendre des ressources CPU de l'hôte.

Mircea Vutcovici
la source
0

Je ne sais rien du tout sur KVM, mais sur VMware, cela peut se produire si vous n'installez pas les outils VMware dans la machine virtuelle, de sorte qu'il n'a pas de pilotes de périphérique appropriés pour le matériel virtualisé et ne peut pas mettre son processeur virtuel au ralenti réel lorsqu'il ne fait rien, en utilisant une simple boucle inactive à la place (ce qui correspond en fait au processeur étant en train de boucler sur lui-même).

Peut-être qu'il y a quelque chose de similaire aux outils VMware que vous devez installer sur votre machine virtuelle?

Massimo
la source
-2

Tout d'abord, arrêtez de comparer Windows et Linux ou attendez-vous à ce qu'ils se comportent de la même manière. Ils sont différents.

Windows n'est jamais inactif. Il exécute de nombreuses tâches d'arrière-plan et d'après ma brève expérience avec Win 7, il en fait plus que XP. Une chose qui aidera à alléger la charge est de commencer à arrêter les services nécessaires, tels que le service d'indexation.

John Gardeniers
la source
1
Linux exécute également de nombreux "services" d'arrière-plan. Et l'affiche originale a confirmé que le gestionnaire de tâches affiche 1 à 2% de processeur utilisé par l'invité Windows.
Colin 't Hart
@Colin, comme nous le savons tous, le gestionnaire de tâches ment sur les charges CPU. Qui ici n'a pas vu un rapport inactif à 98% et le système ne répond toujours pas à la température du processeur en raison de la charge? Je suis également bien conscient que Linux exécute également des tâches d'arrière-plan, mais le point que je faisais est que Linux et Windows sont des animaux complètement différents. Ceux qui essaient de comparer les uns aux autres auront toujours plus de mal que ceux qui acceptent simplement qu'ils sont différents et traitent chacun comme une entité distincte.
John Gardeniers
1
Cela n'a aucun sens.
Colin 't Hart
@Colin, c'est probablement parce que ce genre de chose est loin de ton domaine. Tout Windows qui existe depuis un certain temps comprendra ce que j'ai écrit sur la charge du processeur. Quiconque travaille avec Windows et Linux devrait comprendre le reste. Comme vous ne travaillez pas dans le même domaine, je ne m'attends pas vraiment à ce que vous compreniez ces choses, tout comme je ne comprendrais rien d'Oracle.
John Gardeniers
Qu'est-ce qui vous fait penser que je ne travaille pas dans le même domaine?
Colin 't Hart