Nous constations depuis quelque temps des alertes contentions CPU sur vROps que nous n’expliquions pas. J’avais fait le tour de ce que cette alerte représentait pour moi : CPU Ready – Co-Stop – I/O Wait – Swap Wait, mais rien de m’avait sauté aux yeux.

contention_cpu

La semaine dernière, je passais en revues nos configurations pour en ressortir les incohérences (ne pas avoir Enterprise Plus n’est pas une excuse pour ne pas vérifier la conformité). Plusieurs hôtes de récupération avaient été ajoutés dans différents clusters, mais leurs configurations étaient légèrement différentes des autres nœuds au niveau de la gestion d’alimentation :

power_management

Je tenais enfin mon explication, et effectivement toutes les VMs qui remontaient de la contention étaient hébergées sur des hôtes qui n’étaient pas configurés en .

Une très bonne définition donnée ici par Valentin du support VMware dans une discussion sur le forum VMware à propos du CPU Latency  :

vmwaresupport

le “Dynamic voltage frequency scaling” est clairement la cause dans mon cas.

Un autre très bon article sur le sujet : http://port5480.blogspot.fr/2015/10/cpu-contention-high-in-vrops.html

Il était temps d’activer cette fonctionnalité VMware vieille de la 4.0, l’ajout à chaud de composants !

Avec l’aide des scripts d’Arne Fokkema, j’avais les fonctions pour automatiser l’application du paramétrage:

PowerCLI: Enable/Disable the VM Hot Add features

Combiné à quelques filtres du type :


Get-VM |Where {$_.NumCPU -gt 8}

/!\ l’activation de l’ajout à chaud du CPU désactive le vNUMA donc pour les machines qui pourraient dépasser le numa node size de vos sockets faites attention voir KB2040375 vNUMA is disabled if VCPU hotplug is enabled.

Il ne me restait plus qu’à éteindre les machines pour activer cette superbe option !

Je ferai une update concernant cette automatisation pour les intéressés.