Rechercher

18.8. Outils de contrôle des performances des machines virtuelles

download PDF

Pour identifier ce qui consomme le plus de ressources de la VM et quel aspect des performances de la VM doit être optimisé, il est possible d'utiliser des outils de diagnostic des performances, à la fois généraux et spécifiques à la VM.

Outils de contrôle des performances du système d'exploitation par défaut

Pour une évaluation standard des performances, vous pouvez utiliser les utilitaires fournis par défaut par vos systèmes d'exploitation hôte et invité :

  • Sur votre hôte RHEL 9, en tant que root, utilisez l'utilitaire top ou l'application system monitor, et recherchez qemu et virt dans les résultats. Cela indique la quantité de ressources du système hôte que vos machines virtuelles consomment.

    • Si l'outil de surveillance indique que l'un des processus qemu ou virt consomme une grande partie de l'unité centrale ou de la capacité de mémoire de l'hôte, utilisez l'utilitaire perf pour enquêter. Pour plus de détails, voir ci-dessous.
    • En outre, si un processus vhost_net, nommé par exemple vhost_net-1234, est affiché comme consommant une quantité excessive de capacité de l'unité centrale de l'hôte, envisagez d'utiliser des fonctions d'optimisation du réseau virtuel, telles que multi-queue virtio-net.
  • Sur le système d'exploitation invité, utilisez les utilitaires de performance et les applications disponibles sur le système pour évaluer les processus qui consomment le plus de ressources système.

    • Sur les systèmes Linux, vous pouvez utiliser l'utilitaire top.
    • Sur les systèmes Windows, vous pouvez utiliser l'application Task Manager.

perf kvm

Vous pouvez utiliser l'utilitaire perf pour collecter et analyser des statistiques spécifiques à la virtualisation sur les performances de votre hôte RHEL 9. Pour ce faire, procédez comme suit

  1. Sur l'hôte, installez le paquetage perf:

    # dnf install perf
  2. Utilisez l'une des commandes perf kvm stat pour afficher les statistiques de perf de votre hôte de virtualisation :

    • Pour une surveillance en temps réel de votre hyperviseur, utilisez la commande perf kvm stat live.
    • Pour enregistrer les données de performance de votre hyperviseur sur une période donnée, activez l'enregistrement à l'aide de la commande perf kvm stat record. Après l'annulation ou l'interruption de la commande, les données sont enregistrées dans le fichier perf.data.guest, qui peut être analysé à l'aide de la commande perf kvm stat report.
  3. Analysez la sortie perf pour identifier les types d'événements VM-EXIT et leur distribution. Par exemple, les événements PAUSE_INSTRUCTION devraient être peu fréquents, mais dans la sortie suivante, l'occurrence élevée de cet événement suggère que les CPU de l'hôte ne gèrent pas bien les vCPU en cours d'exécution. Dans un tel scénario, envisagez d'arrêter certaines de vos machines virtuelles actives, de supprimer les vCPU de ces machines virtuelles ou de régler les performances des vCPU.

    # perf kvm stat report
    
    Analyze events for all VMs, all VCPUs:
    
    
                 VM-EXIT    Samples  Samples%     Time%    Min Time    Max Time         Avg time
    
      EXTERNAL_INTERRUPT     365634    31.59%    18.04%      0.42us  58780.59us    204.08us ( +-   0.99% )
               MSR_WRITE     293428    25.35%     0.13%      0.59us  17873.02us      1.80us ( +-   4.63% )
        PREEMPTION_TIMER     276162    23.86%     0.23%      0.51us  21396.03us      3.38us ( +-   5.19% )
       PAUSE_INSTRUCTION     189375    16.36%    11.75%      0.72us  29655.25us    256.77us ( +-   0.70% )
                     HLT      20440     1.77%    69.83%      0.62us  79319.41us  14134.56us ( +-   0.79% )
                  VMCALL      12426     1.07%     0.03%      1.02us   5416.25us      8.77us ( +-   7.36% )
           EXCEPTION_NMI         27     0.00%     0.00%      0.69us      1.34us      0.98us ( +-   3.50% )
           EPT_MISCONFIG          5     0.00%     0.00%      5.15us     10.85us      7.88us ( +-  11.67% )
    
    Total Samples:1157497, Total events handled time:413728274.66us.

    D'autres types d'événements peuvent signaler des problèmes dans la sortie de perf kvm stat:

Pour plus d'informations sur l'utilisation de perf pour surveiller les performances de la virtualisation, voir la page de manuel perf-kvm.

numastat

Pour connaître la configuration NUMA actuelle de votre système, vous pouvez utiliser l'utilitaire numastat, qui est fourni en installant le paquetage numactl.

L'exemple suivant montre un hôte avec 4 VM en cours d'exécution, chacune obtenant de la mémoire à partir de plusieurs nœuds NUMA. Cette situation n'est pas optimale pour les performances des vCPU et mérite d'être corrigée:

# numastat -c qemu-kvm

Per-node process memory usage (in MBs)
PID              Node 0 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Total
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
51722 (qemu-kvm)     68     16    357   6936      2      3    147    598  8128
51747 (qemu-kvm)    245     11      5     18   5172   2532      1     92  8076
53736 (qemu-kvm)     62    432   1661    506   4851    136     22    445  8116
53773 (qemu-kvm)   1393      3      1      2     12      0      0   6702  8114
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
Total              1769    463   2024   7462  10037   2672    169   7837 32434

En revanche, la figure suivante montre que la mémoire est fournie à chaque machine virtuelle par un seul nœud, ce qui est nettement plus efficace.

# numastat -c qemu-kvm

Per-node process memory usage (in MBs)
PID              Node 0 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Total
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
51747 (qemu-kvm)      0      0      7      0   8072      0      1      0  8080
53736 (qemu-kvm)      0      0      7      0      0      0   8113      0  8120
53773 (qemu-kvm)      0      0      7      0      0      0      1   8110  8118
59065 (qemu-kvm)      0      0   8050      0      0      0      0      0  8051
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
Total                 0      0   8072      0   8072      0   8114   8110 32368
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.