J'ai un hôte Linux avec 4 invités Linux KVM. Tous les invités sont à peu près inactifs, avec une charge <0,1 à l'intérieur de l'invité.
Maintenant, si je fais un top
sur l'hôte, chaque processus KVM utilise environ 30% du processeur.
Est-ce un comportement normal? Je m'attendrais à ce que l'hôte ait besoin de beaucoup moins de CPU juste pour héberger un invité inactif.
Si c'est normal, quelle en est la raison?
Si ce n'est pas normal, quel pourrait être le problème?
performance
cpu
kvm
virtualization
michas
la source
la source
Réponses:
Étant cynique, je pourrais dire que c'est "normal" pour les invités Windows mais pas pour les invités Linux (au moins je n'en ai jamais vu un se comporter comme ça).
Avec Windows, cela dépend beaucoup des applications en cours d'exécution (presque inactives). Un simple XP ou W2K (je n'ai pas encore d'expérience avec les nouvelles versions de KVM) provoque 10% à 20% sur l'hôte (étant affiché environ 0% à l'intérieur) mais MS SQL Server obtient cela facilement au-dessus de 30%. Cela semble être lié à l'accès de la minuterie et / ou ACPI en quelque sorte. Mais même dans une machine virtuelle non ACPI, je n'ai jamais eu Windows en dessous de 10% sur l'hôte.
Edit 1 (intégrant des commentaires)
Quelle est la sortie de
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(dans l'invité)? Cela devrait être kvm-clock. Vérifiez la configuration de votre noyau (/proc/config.gz) pour CONFIG_PARAVIRT_CLOCK et CONFIG_KVM_CLOCK.Il s'agit d'une liste d'options de configuration du noyau pertinentes pour KVM .
la source
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
?acpi_pm
dans l'invité ettsc
sur l'hôte. Pas de X, mais un serveur d'applications Java et une base de données Oracle s'exécutent dans chaque invité.kvm-clock
place (dans l'invité). Je n'ai jamais eu à configurer cela explicitement. Vérifiez votre kernel config (/proc/config.gz
) pourCONFIG_PARAVIRT_CLOCK
etCONFIG_KVM_CLOCK
.y
. Définir current_clocksource pourkvm-clock
améliorer les choses. Désormais, chaque processus KVM représente environ 20%. Le système a été migré vers KVM à partir d'une configuration précédente de virtualbox. On dirait que certains réglages sont toujours de l'ancienne configuration ...Je vérifierais pour m'assurer que les invités KVM sont provisionnés afin qu'ils puissent utiliser toutes les ressources de l'hôte (CPU, RAM, etc.). En règle générale, les invités KVM ne sont attribués que, disons, 1 à 2 CPU (cœurs) sur un système qui peut en contenir beaucoup plus.
Cela signifie que vous ne comparez pas exactement la même chose lorsque vous regardez les ressources de l'hôte par rapport aux internes d'un invité KVM donné.
Par exemple
L'hôte a les éléments suivants:
Alors que l'un des invités KVM a ceci:
la source