1 votes

Est-ce que libvirt attribue réellement dynamiquement des cœurs de CPU aux machines virtuelles en direct ?

Je suis en train d'utiliser la version 6.0.0 de libvirt sur Ubuntu 20.04.4 LTS pour gérer mes VM KVM. Je veux changer le nombre de cœurs de la VM en direct en utilisant virsh CLI. J'ai vu qu'en utilisant virsh setvcpus nom_VM nombre_de_coeur --live je peux le faire. Voici la sortie sur le système hôte à ce sujet.

Étape 1. J'ai lancé ma VM avec 1 cœur. Voici les infos sur l'unité de traitement virtuelle (vcpu) de la VM.

host$ virsh vcpuinfo ubuntu_18_04_guest4
VCPU:           0
CPU:            14
State:          running
CPU time:       25.8s
CPU Affinity:   yyyyyyyyyyyyyyyy
  1. Je change le nombre de cœurs de la VM de 1 cœur à 2 cœurs.

    host$ virsh setvcpus ubuntu_18_04_guest4 2 --live

  2. Je vérifie le nombre de cœurs de la VM

    host$ virsh vcpuinfo ubuntu_18_04_guest4 VCPU: 0 CPU: 2 State: running CPU time: 65.5s CPU Affinity: yyyyyyyyyyyyyyyy

    VCPU: 1 CPU: 0 State: running CPU Affinity: yyyyyyyyyyyyyyyy

Côté hôte, cela semble fonctionner. Maintenant, je passe au côté OS invité. Voici la sortie lorsque la VM est tout d'abord lancée avec 1 cœur. enter image description here

Comme nous le voyons, il y a 1 cœur car nous avons démarré la VM avec 1 cœur. Maintenant, j'attache la capture d'écran après avoir augmenté le nombre de cœurs à 2. enter image description here

Comme nous le voyons, je ne vois pas cette augmentation côté invité même si je la vois côté hôte. Je redémarre maintenant la VM.

guest$ sudo reboot

J'attache la sortie htop après le redémarrage de la VM. enter image description here

Maintenant les 2 cœurs précédemment alloués sont effectifs dans la machine invitée.

En conclusion, même si j'effectue une allocation en direct des cœurs à la VM côté hôte, j'ai dû redémarrer la VM pour la rendre effective. Dans ce cas, quelle est la raison de l'allocation en direct des cœurs?

Merci,

2voto

Gün Karagöz Points 605

X86 ne détecte pas automatiquement les nouveaux processeurs, vous devez dire à l'invité de le mettre en ligne. Cela pourrait être fait via: echo 1 > /sys/devices/system/cpu/cpuX/online.

Certains utilisent une règle udev comme ACTION=="add", SUBSYSTEM=="cpu", ATTR{online}="1" pour le faire automatiquement.

Il existe également des limites via le paramètre du kernel maxcpus (au démarrage) et smp qui pourrait le désactiver complètement. En cas de doute, consultez toutes les entrées marquées [SMP] dans ce document.

Après avoir répondu, j'ai réalisé que c'était déjà discuté dans d'autres questions, en utilisant d'autres termes, mais les mêmes réponses.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X