XenServer

Surveiller l’utilisation du processeur

Le nombre optimal de vCPU par processeur sur un hôte dépend de votre cas d’utilisation. Pendant le fonctionnement, veillez à surveiller les performances de votre environnement XenServer et à ajuster votre configuration en conséquence.

Termes

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 connecté au socket du processeur.
  • Noyau : unité de traitement physique, capable d’exécuter un thread d’exécution indépendant, qui contient toutes les unités fonctionnelles nécessaires pour prendre en charge cette exécution.
  • Hyperthread : unité de traitement physique, capable d’exécuter un thread 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 comprenant un ensemble de registres et un pointeur d’instructions. Dans un système où les hyperthreads sont activés, il s’agit d’un hyperthread. Dans d’autres cas, il s’agit d’un noyau.
  • CPU hôtes : nombre total de processeurs logiques dans l’hôte.
  • vCPU (processeur virtuel) : processeur logique virtualisé. Il s’agit d’une unité logique capable d’un thread d’exécution indépendant, fourni aux machines virtuelles. Dans XenServer, les processeurs virtuels peuvent « partager le temps » entre les processeurs, à l’aide d’un planificateur qui détermine quel processeur virtuel s’exécute sur tel ou tel processeur à un moment donné.
  • processeurs virtuels invités : processeurs virtuels présentés à un système d’exploitation client au sein d’une machine virtuelle.
  • vCPU Dom0 : processeurs virtuels visibles par le domaine de contrôle XenServer (dom0).
  • Nombre total de vCPU hôtes : somme de dom0 vCPU 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 de l’hôte. À mesure que vous augmentez le nombre de processeurs virtuels sur un hôte, vous pouvez rencontrer les types de comportement suivants :

  • Lorsque le nombre total de processeurs virtuels sur l’hôte est inférieur ou égal au nombre de processeurs sur l’hôte, l’hôte fournit toujours la quantité de processeur demandée par les machines virtuelles.

  • Lorsque le nombre total de processeurs virtuels sur l’hôte est supérieur au nombre de processeurs sur l’hôte, l’hôte partage l’heure des processeurs hôtes avec les machines virtuelles. Ce comportement n’affecte généralement pas les machines virtuelles car leurs processeurs virtuels sont généralement inactifs pendant un certain temps et, dans la plupart des cas, l’hôte n’atteint pas 100 % d’utilisation du processeur.

  • Lorsque le nombre total de processeurs virtuels sur l’hôte est supérieur au nombre de processeurs sur l’hôte et que l’hôte atteint parfois 100 % d’utilisation du processeur de l’hôte, les processeurs virtuels ne reçoivent pas la quantité de processeur requise pendant les pics. Au lieu de cela, pendant ces pics, les machines virtuelles ralentissent pour recevoir une part du PCU disponible sur l’hôte.

  • Lorsque le nombre total de processeurs virtuels sur l’hôte est supérieur au nombre de processeurs sur l’hôte et que l’hôte atteint souvent 100 % d’utilisation du processeur de l’hôte, les processeurs virtuels des machines virtuelles sont continuellement ralentis pour recevoir une part des processeurs 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 vCPU sur l’hôte.

Le nombre optimal de vCPU sur un hôte peut dépendre de la façon dont les utilisateurs des machines virtuelles perçoivent la vitesse de leurs machines virtuelles, en particulier lorsque celles-ci ont des exigences en temps réel.

Obtenir des informations sur vos processeurs

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

xe host-cpu-info --minimal

Pour connaître le nombre total de vCPU (guest 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 à l’aide des métriques RRD

XenServer fournit des métriques RRD qui décrivent les performances des vCPU de vos machines virtuelles.

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

Lorsqu’un hôte atteint 100 % de l’utilisation du processeur de l’hôte, utilisez ces indicateurs de machine virtuelle pour décider s’il convient de déplacer la machine virtuelle vers un autre hôte :

runstate_concurrency_hazard

  • runstate_concurrency_hazard > 0 % indique que parfois, au moins un processeur virtuel est en cours d’exécution alors qu’au moins un autre processeur virtuel souhaite s’exécuter mais ne parvient pas à obtenir le temps requis par le processeur. Si les processeurs virtuels doivent être coordonnés, 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 :

    • Diminuez le nombre de vCPU 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 faisant migrer d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

runstate_partial_contention

  • runstate_partial_contention > 0 % indique à la fois qu’au moins un processeur virtuel souhaite s’exécuter mais ne parvient pas à obtenir du temps sur le processeur, et également qu’au moins un autre processeur virtuel 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 principaux sont surchargés en consultant les indicateurs principaux fournis 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 :

    • Diminuez le nombre de vCPU 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 faisant migrer d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

runstate_full_contention

  • runstate_full_contention > 0 % indique que parfois les processeurs virtuels souhaitent s’exécuter tous en même temps mais qu’aucun d’entre eux ne peut obtenir l’heure du processeur.

  • 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 :

    • Diminuez le nombre de vCPU 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 faisant migrer d’autres machines virtuelles ou en diminuant leur nombre de vCPU.

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

Si un hôte n’atteint pas 100 % de l’utilisation du processeur de l’hôte, utilisez ces indicateurs de machine virtuelle pour déterminer si une machine virtuelle possède le bon nombre de processeurs virtuels :

runstate_fullrun

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

    Action suggérée :

    Diminuez le nombre de processeurs virtuels dans cette machine virtuelle.

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

  • runstate_fullrun = 100 % indique que les processeurs virtuels 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’à ce que runstate_fullrun soit inférieur à 100 %. N’augmentez pas davantage le nombre de processeurs virtuels, sinon cela pourrait augmenter la probabilité d’un risque de concurrence si l’hôte atteint 100 % de l’utilisation du processeur.

runstate_partial_run

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

  • 0% < runstate_partial_run < 100 % indique qu’au moins un processeur virtuel est parfois 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 processeur virtuel bloqué.

    Action suggérée :

    Vérifiez si les serveurs de stockage d’E/S principaux sont surchargés. Si ce n’est pas le cas, la machine virtuelle possède probablement trop de processeurs virtuels et vous pouvez réduire le nombre de processeurs virtuels dans cette machine virtuelle. La présence d’un trop grand nombre de processeurs virtuels sur une machine virtuelle peut augmenter le risque que celle-ci entre en situation de risque de concurrence lorsque l’utilisation du processeur hôte atteint 100 %.

Surveiller l’utilisation du processeur