Le CPU Stolen est remonté par les VM Tools installés sur une VM VMWare. Il indique du temps qui est perdu par la VM, et réduit d'autant les performances de la machine. Un taux élevé de CPU Stolen (>10%) est un problème qui doit être adressé au plus vite car les démons Shinken sont fortement ralentis.
La documentation VMWare concernant cet indicateur est disponible en téléchargement sur le site https://code.vmware.com/web/sdk/7.0/vsphere-guest (lien: Guest and HA Application Monitoring SDK Programming Guide ). L'indicateur est présenté page 30.
Il représente le temps perdu par la VM par rapport au cas où la machine serait une machine physique. C'est donc le temps perdu par toute la couche de virtualisation pour diverses raisons.
Le CPU Stolen remonté par les VMWare tools a deux composantes:
Ces indicateurs sont récupérables dans l'interface VSphere pour la VM. Dans l'affichage des performances de la VM, il faut sélectionner les indicateurs :
|
Ceci va donner deux courbes qui sont exprimées en ms cumulées sur le dernier intervalle de mesure de VSphere, à savoir 20s, et ce pour l'ensemble des VCpus (ici une machine à 8VCpus):
|
|
Il faut transformer les valeurs cumulées de VSphere en pourcentage, pour cela, il faut faire l'opération suivante: pourcentage = moyenne / (nb_cpus * 20s * 1000ms)
Ainsi dans notre cas, nous avons donc en moyenne:
Dans notre cas la machine perds donc un peu plus de 7% de son temps à cause de la couche de virtualisation.
Le CPU Stolen étant du temps perdu à cause de la couche de virtualisation, il ne faut pas que ce temps soit trop important, sous peine d'avoir des démons Shinken qui tourneront au ralenti, et ne pourront pas effectuer les taches qu'on leur a demandé. Ainsi, les seuils d'alerte du CPU Stolen sont:
Si une de vos VM a un fort taux de CPU Stolen, c'est un problème qui doit être réglé sans attendre. Les valeurs de %ready et %costop dans l'interface de VSphere vont aider à trouver les bonnes pistes de résolution:
L'hyperthreading permet à un même cœur physique d'avancer deux threads en même temps. Il apparait donc comme un cœur dans l'interface de VSphere.
Cependant, il ne faut pas considérer que les performances de la machine sont multipliés par deux. VMWare, dans son document concernant les VMWare tools (page 31) vu plus haut considère que l'activation de l'hyperthreading permet d'augmenter les performances de la machines de 20% (et non pas 100% donc).
Nous vous conseillons donc de bien faire attention à ce point, et ne surtout pas faire le sizing de l'ESXi et des VCpus en vous basant uniquement sur le nombre affichés de CPU physiques, mais ne prendre en compte que la moitié + 20% si le serveur a de l'hyperthreading d'activé.