Auteur Sujet: Stats CPU sur serveurs  (Lu 4075 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 170
    • Twitter LaFibre.info
Stats CPU sur serveurs
« le: 02 juin 2016 à 14:41:44 »
Représentation de l'usage CPU d'un serveur par Munin vs VMware

Je me demande pourquoi Munin dans ses stats CPU perd une partie des données : sur les 4 coeurs du serveur, la majorité est en idle (orange), une partie system (vert), une partie soft irq (jaune) et une partie important inconnue (blanc).

Le pire, c'est ce que cette VM est supervisée par VMware qui voit les choses de façon différente avec une utilisaiton CPU qui dépasse 95% alors que Munin laisse croire qu'il reste beaucoup de capacité CPU.

L'OS invité est Ubuntu server 16.04 LTS 64bits, il fait tourner une petit programme en C qui envoie des données a plusieurs centaines de clients.

A gauche les stats Munin, à droite les stats VMware :


La machine a été saturée la nuit ou non ? qui croire ?

Autre présentation étonnante de VMware : Additionner les Mhz de chaque cœur (j'ai 4 cœurs d'un CPU AMD Opteron 6380 à 2,4 Ghz, soit un maximum de 9,6 Ghz)


Sur une autre machine qui fait elle tourner Apache 2.4, le passage d'Ubuntu 15.10 à Ubuntu 16.04 a fait disparaître presque tous les espaces blanc, remplacé par du softirq : (l'upgrade a été fait semaine 20, là où le blanc disparaît)

vivien

  • Administrateur
  • *
  • Messages: 47 170
    • Twitter LaFibre.info
Stats CPU sur serveurs
« Réponse #1 le: 02 juin 2016 à 14:45:45 »
Sur l'usage réseau, il y a des différences entre Munin et VMware, mais c'est bien plus faible :

Munin :


VMware :



D'autres infos Munin :


tivoli

  • Toulouse (31)
  • Abonné Bbox fibre
  • *
  • Messages: 1 944
  • Toulouse (31)
Stats CPU sur serveurs
« Réponse #2 le: 02 juin 2016 à 16:30:15 »
As tu bien installe les VM tools ?

vivien

  • Administrateur
  • *
  • Messages: 47 170
    • Twitter LaFibre.info
Stats CPU sur serveurs
« Réponse #3 le: 02 juin 2016 à 16:39:32 »
Oui, ce sont des infos données via les VM tools.

A noter que c'est pas la dernière version de VMware / vCenter :

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
Stats CPU sur serveurs
« Réponse #4 le: 02 juin 2016 à 19:44:56 »
Attention y'a un piège avec la virtualisation avec VMware :
 1- le nombre de vCPU n'a rien à voir avec le nombre de CPU physique : un vCPU c'est allouer du temps CPU à une VM. Plus il y a de vCPU, plus on alloue de ce temps. Le ratio à respecter est un maximum de 4x vCPU pour un pCPU, ou 2x vCPU par Thread pour les CPU Intel avec HT.
 2- si la VM consomme tous ses vCPU, l'utilisation des CPU physiques sera idéales
 3- si la VM "idle" et/ou n'utilise qu'un seul vCPU sur plusieurs, l'ESX perdra du temps à gérer des vCPU inutilement -> utilisation des CPU physiques non optimisées; % ready important

Dans ton cas, ta 1ère VM me parait "sur-dimensionnée" -> 2 vCPU lui suffirait, 1x vCPU à l'extrème. Ensuite l'ESX t'indique la charge telle qu'il l'a voit lui = "Usage". Soit 1x pCPU consommé.



vivien

  • Administrateur
  • *
  • Messages: 47 170
    • Twitter LaFibre.info
Stats CPU sur serveurs
« Réponse #5 le: 02 juin 2016 à 19:55:16 »
J'ai un peu de mal à comprendre :

Si je regarde le graphe Munin, je me dis que tout est bon, pas de saturation.
Si je regarde les stats VMware, je me dis que 95% de charge CPU sur 5 minutes c'est énorme et qu'il me faut plus de vCPU.

Tu me dis qu'un seul vCPU pourrait suffire, j'ai encore plus de mal à comprendre.

Si j'avais un seul vCPU et qu'il y a 4x vCPU pour un pCPU, VMware me bloquerait à 25% de charge CPU ?
Si j'avais 8 vCPU et qu'il y a 4x vCPU pour un pCPU, VMware me permettrait d'aller à 200% de charge CPU ?
ou la courbe usage de VMware est une moyenne de mes différents vCPU (avec une échelle de 0 à 100% quel que soit le nb de vCPU)

A gauche les stats Munin, à droite les stats VMware :

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
Stats CPU sur serveurs
« Réponse #6 le: 02 juin 2016 à 20:54:47 »
...
Si je regarde les stats VMware, je me dis que 95% de charge CPU sur 5 minutes c'est énorme et qu'il me faut plus de vCPU.

Non pas plus de vCPU. 1 vCPU != 1 pCPU. Il n'y a aucun lien entre les deux. C'est VMware qui a (probablement) décidé de mettre toute la charge des vCPU sur un seul pCPU. Si 1x pCPU est proche de 100% c'est soit qu'il est correctement utilisé soit que tu as un seul thread dans une VM qui consomme tout. Augmenter le nombre de vCPU ne changera rien.

Citer
Tu me dis qu'un seul vCPU pourrait suffire, j'ai encore plus de mal à comprendre.

Si j'avais un seul vCPU et qu'il y a 4x vCPU pour un pCPU, VMware me bloquerait à 25% de charge CPU ?

L'ESX ne bloque rien, il perd juste du temps à gérer les 3 vCPU qui "ne font rien". Plus il y a d'idle, plus ça pose de problème à l'hyperviseur.

Citer
Si j'avais 8 vCPU et qu'il y a 4x vCPU pour un pCPU, VMware me permettrait d'aller à 200% de charge CPU ?

A combien seraient utilisé les vCPU ? Si 1x vCPU à 100%, pCPU = 100%. Si 2x vCPU à 100%, pCPU = 100%, etc -> les perfs se dégradent du point de vue de la VM. 4x vCPU pour 1 pCPU est une recommandation max. Si ta VM va utiliser tous ses vCPU (calcul intensif multithread), alors la règle de dimensionnement sera 1x vCPU = 1 pCPU (ce qui pose la question de l'intérêt de virtualiser).

Citer
ou la courbe usage de VMware est une moyenne de mes différents vCPU (avec une échelle de 0 à 100% quel que soit le nb de vCPU)

Ca dépend où on regarde. Sur l'interface web embarquée d'ESXi 6 (optionnel mais je recommande son installation), sur l'hôte, 100%=somme de tous les pCPU. D'ailleurs la charge par pCPU est clairement indiquée. Par VM, on voit uniquement le % de pCPU utilisé, quelque soit le nombre de vCPU. Dans l'interface client vSphere, on voit les vCPU en MHz et l'utilisation totale en % avec 100% en max.

Autre curiosité : si 1x vCPU = 100%, on peut voir 2x pCPU à 50% chacun si pas d'autre activité sur l'ESX. Je pense que c'est plus un problème d'affichage d'échelle (différence entre l'intervalle d'échantillonnage et la réalité).

Qu'est-ce qu'il se passe si on ne respecte pas les règles ? J'ai eu un client qui avait affecté une 100aine de vCPU par hotes, chacun équipé de 12 coeurs. Les VM étaient sur-dimensionnées avec 4 à 8 vCPU chacune. Le client se plaignait de lenteurs et d'instabilité alors que la charge affichée par VM était ridicule. On lui a tout fait re-dimensionner jusqu'à arriver au ratio max de 4 vCPU / coeur. Tous les problèmes ont disparu.

Par contre, attention à la RAM: un ESX n'aime pas du tout la pénurie !
 

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
Stats CPU sur serveurs
« Réponse #7 le: 03 juin 2016 à 00:59:21 »
En résumé, vmware, c'est un soft un peu bancal.

Merci Badmax pour les infos sur ce problème intéressant