Citrix Hypervisor

Surveiller l’utilisation du processeur

Important :

La mise à jour cumulative 1 de Citrix Hypervisor 8.2 prend fin le 25 juin 2025. Planifiez votre mise à niveau vers XenServer 8 dès maintenant pour assurer une transition en douceur et un support continu. Pour plus d’informations, consultez Mise à niveau.

Si vous utilisez vos fichiers de licence Citrix Virtual Apps and Desktops pour obtenir une licence pour vos hôtes Citrix Hypervisor 8.2 Cumulative Update 1, ces fichiers de licence ne sont pas compatibles avec XenServer 8. Avant la mise à niveau, vous devez acquérir les fichiers de licence socket XenServer Premium Edition à utiliser avec XenServer 8. Ces fichiers de licence de socket sont disponibles en tant que droits des abonnements Citrix pour le cloud privé, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP et Citrix Platform License pour l’exécution de vos charges de travail Citrix. Les clients Citrix qui n’ont pas encore migré vers ces nouveaux abonnements peuvent demander à participer à une promotion gratuite pour 10 000 licences de sockets XenServer Premium Edition. Pour plus d’informations, consultez XenServer.

Si vous n’obtenez pas de licence compatible pour XenServer 8 avant la mise à niveau, lorsque vous mettez à niveau vos hôtes, ils reviennent à l’édition d’essai de 90 jours. L’édition d’essai offre les mêmes fonctionnalités que l’édition Premium, avec quelques limitations. Pour plus d’informations, consultez Présentation des licences XenServer 8.

Le nombre optimal de vCPU par pCPU sur un hôte dépend de votre cas d’utilisation. Pendant le fonctionnement, assurez-vous de surveiller les performances de votre environnement d’hyperviseur Citrix et d’ajuster votre configuration en conséquence.

Petits caractères

Dans ce domaine, il existe différents termes qui sont parfois utilisés de manière interchangeable. Dans cet article, nous utilisons les termes et significations suivants :

  • CPU (CPU physique) : Matériel physique attaché à un socket de processeur.
  • Noyau: Unité de traitement physique, capable d’un thread d’exécution indépendant, qui contient toutes les unités fonctionnelles requises pour prendre en charge cette exécution.
  • Hyperthread : Unité de traitement physique, capable d’un thread d’exécution indépendant, qui partage certaines unités fonctionnelles avec un autre hyperthread (également connu sous le nom de « thread frère »).
  • Processeur logique (pCPU) : Unité capable d’un thread d’exécution indépendant qui comprend un ensemble de registres et un pointeur d’instruction. Dans un système sur lequel les hyperthreads sont activés, il s’agit d’un hyperthread. Dans d’autres cas, il s’agit d’un noyau.
  • Processeurs hôtes: nombre total de processeurs logiques dans l’hôte.
  • vCPU (CPU virtuel): un processeur logique virtualisé. Il s’agit d’une unité logique capable d’un thread d’exécution indépendant, fournie aux VM. Dans Citrix Hypervisor, les vCPU peuvent « partager le temps » des pCPU, à l’aide d’un planificateur pour déterminer quel vCPU s’exécute sur quel pCPU à un moment donné.
  • VCPU invités: les vCPU qui sont présentés à un système d’exploitation invité à l’intérieur d’une machine virtuelle.
  • Dom0 vCPU: vCPU visibles dans le domaine de contrôle Citrix Hypervisor (dom0).
  • Nombre total de vCPU de l’hôte: somme des vCPU dom0 et de tous les vCPU invités de l’hôte.

Comportement général

Le nombre total de vCPU sur un hôte est le nombre de vCPU utilisés par dom0 ajouté au nombre total de vCPU attribués à toutes les machines virtuelles sur l’hôte. Lorsque vous augmentez le nombre de vCPU sur un hôte, vous pouvez rencontrer les types de comportement suivants :

  • Lorsque le nombre total de vCPU sur l’hôte est inférieur ou égal à le nombre de pCPU sur l’hôte, l’hôte fournit toujours autant de CPU que nécessaire aux machines virtuelles.

  • Lorsque le nombre total de vCPU sur l’hôte est plus grand que le nombre de pCPU sur l’hôte, l’hôte partage le temps des pCPU de l’hôte avec les machines virtuelles. Ce comportement n’affecte généralement pas les machines virtuelles, car leurs vCPU sont généralement inactifs pendant une partie du temps et, dans la plupart des cas, l’hôte n’atteint pas 100 % d’utilisation du pCPU.

  • Lorsque le nombre total de vCPU sur l’hôte est plus grand que le nombre de pCPU sur l’hôte et l’hôte est parfois atteignant 100 % d’utilisation du pCPU de l’hôte, les vCPU des machines virtuelles ne reçoivent pas autant de pCPU qu’ils en demandent pendant les pics. Au lieu de cela, pendant ces pics, les machines virtuelles ralentissent pour recevoir une part du pCPU disponible sur l’hôte.

  • Lorsque le nombre total de vCPU sur l’hôte est plus grand que le nombre de pCPU sur l’hôte et l’hôte est souvent atteignant 100 % d’utilisation du pCPU de l’hôte, les vCPU des machines virtuelles sont continuellement ralentis pour recevoir une part des CPU disponibles sur l’hôte. Si les machines virtuelles ont des exigences en temps réel, cette situation n’est pas idéale et vous pouvez y remédier en réduisant le nombre de processeurs virtuels sur l’hôte.

Le nombre optimal de processeurs virtuels sur un hôte peut dépendre de la perception qu’ont les utilisateurs de la vitesse de leurs machines virtuelles, en particulier lorsque les machines virtuelles ont des exigences en temps réel.

Obtenir des informations sur vos processeurs

Pour connaître le nombre total de pCPU sur votre hôte, exécutez la commande suivante :

  xe host-cpu-info --minimal

Pour connaître le nombre total de processeurs virtuels (invité et dom0) actuellement sur votre hôte, exécutez la commande suivante :

  xl vcpu-list | grep -v VCPU | wc -l

Surveillance de l’utilisation du processeur avec les métriques RRD

Citrix Hypervisor fournit des métriques RRD qui décrivent les performances des processeurs virtuels de vos machines virtuelles.

Lorsque l’utilisation du pCPU de l’hôte est de 100 %

Lorsqu’un hôte atteint 100 % de l’utilisation du pCPU de l’hôte, utilisez ces métriques de machine virtuelle pour décider de déplacer la machine virtuelle vers un autre hôte :

risque_de_concurrence_d’état_d’exécution

  • runstate_concurrency_hazard > 0% indique que parfois, au moins un vCPU est en cours d’exécution alors qu’au moins un autre vCPU souhaite s’exécuter mais ne peut pas obtenir de temps pCPU. Si les vCPU doivent se coordonner, ce comportement entraîne des problèmes de performances.

  • runstate_concurrency_hazard approchant les 100% est une situation à éviter.

    Actions suggérées :

    En cas de problèmes de performances, effectuez l’une des actions suivantes :

    • Réduisez le nombre de processeurs virtuels dans la machine virtuelle.
    • Déplacez la machine virtuelle vers un autre hôte.
    • Réduisez le nombre total de vCPU sur l’hôte en migrant d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

conflit_partiel_d’état_d’exécution

  • runstate_partial_contention > 0% indique à la fois qu’au moins un vCPU veut s’exécuter mais ne peut pas obtenir de temps pCPU, et qu’au moins un autre vCPU est bloqué (soit parce qu’il n’y a rien à faire, soit parce qu’il attend la fin des E/S).

  • runstate_concurrency_hazard approchant les 100% est une situation à éviter.

    Action suggérée :

    Vérifiez si les serveurs de stockage d’E/S back-end sont surchargés en examinant les métriques back-end fournies par votre fournisseur de stockage. Si les serveurs de stockage ne sont pas surchargés et qu’il y a des problèmes de performances, effectuez l’une des actions suivantes :

    • Réduisez le nombre de processeurs virtuels dans la machine virtuelle.
    • Déplacez la machine virtuelle vers un autre hôte.
    • Réduisez le nombre total de vCPU sur l’hôte en migrant d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

État d’exécution_contention_pleine_pleine

  • runstate_full_contention > 0% indique que parfois les vCPU veulent s’exécuter tous en même temps, mais qu’aucun ne peut obtenir de temps pCPU.

  • runstate_full_contention approchant les 100% est une situation à éviter.

    Actions suggérées :

    En cas de problèmes de performances, effectuez l’une des actions suivantes :

    • Réduisez le nombre de processeurs virtuels dans la machine virtuelle.
    • Déplacez la machine virtuelle vers un autre hôte.
    • Réduisez le nombre total de vCPU sur l’hôte en migrant d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

Lorsque l’utilisation du pCPU de l’hôte est inférieure à 100 %

Si un hôte n’atteint pas 100 % de l’utilisation du pCPU de l’hôte, utilisez ces métriques de machine virtuelle pour décider si une machine virtuelle dispose du bon nombre de vCPU :

état d’exécution_complet

  • runstate_fullrun = 0 % indique que les vCPU ne sont jamais utilisés en même temps.

    Action suggérée :

    Réduisez le nombre de vCPU dans cette machine virtuelle.

  • 0% < runstate_fullrun < 100% indique que les vCPU sont parfois utilisés en même temps.

  • runstate_fullrun = 100 % indique que les vCPU sont toujours utilisés en même temps.

    Action suggérée :

    Vous pouvez augmenter le nombre de processeurs virtuels dans cette machine virtuelle, jusqu’à runstate_fullrun < 100%. N’augmentez pas davantage le nombre de vCPU, sinon cela peut augmenter la probabilité de risque de simultanéité si l’hôte atteint 100 % de l’utilisation du pCPU.

état d’exécution_exécution_partielle

  • runstate_partial_run = 0 % indique que tous les vCPU sont toujours utilisés (exécution complète = 100 %) ou qu’aucun vCPU n’est utilisé (inactif = 100 %).

  • 0% < runstate_partial_run < 100% indique que, parfois, au moins un vCPU est bloqué, soit parce qu’il n’a rien à faire, soit parce qu’il attend la fin des E/S.

  • runstate_partial_run=100 % indique qu’il y a toujours au moins un vCPU bloqué.

    Action suggérée:

    Vérifiez si les serveurs de stockage d’E/S back-end sont surchargés. Si ce n’est pas le cas, la machine virtuelle a probablement trop de vCPU et vous pouvez réduire le nombre de vCPU dans cette machine virtuelle. Le fait d’avoir trop de vCPU dans une machine virtuelle peut augmenter le risque que la machine virtuelle passe à l’état de danger de simultanéité lorsque l’utilisation du processeur de l’hôte atteint 100 %.

Surveiller l’utilisation du processeur