top
montre une utilisation moyenne du processeur pendant les périodes de pointe d'environ 20% tandis que la surveillance CloudWatch montre une utilisation moyenne du processeur de 40%. Qu'est-ce qui cause cet écart?
top
montre une utilisation moyenne du processeur pendant les périodes de pointe d'environ 20% tandis que la surveillance CloudWatch montre une utilisation moyenne du processeur de 40%. Qu'est-ce qui cause cet écart?
Une très bonne observation et nous l'avons rencontrée également. Voici ce que j'ai trouvé:
Soyez prudent en mesurant l'utilisation du processeur à partir d'une instance EC2. Il est possible de voir l'utilisation du processeur bien en dessous de 100% - tout en étant complètement optimisé. Croyez-moi: j'ai été là, j'ai fait ça. (Au fait, CloudWatch CPUUtilization est mesuré de l'extérieur de l'instance et est toujours correct.)
Il y a une très bonne description de tout cela ici: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/
Dans l'exemple ci-dessus, l'instance m1.small EC2 s'est vu allouer 0,4 unité de processeur et donc 40% de CPU occupé signifie le pourcentage d'utilisation du cœur sous-jacent. Cependant, étant donné que 40% est le partage CPU maximum pouvant être alloué à cette machine virtuelle, l'utilisation CPU effective est de 40% / 40% = 100%. Quel est le nombre affiché par CloudWatch.
Si vous vous demandez d'où vient 40%, le calcul est assez simple. Le système linux m1.small a droit à 1 unité de calcul EC2 qui fournit la capacité CPU équivalente d'un processeur Opteron 2007 à 1,0-1,2 GHz ou Xeon 2007. Étant donné que la machine virtuelle fonctionne sur une machine avec une vitesse d'horloge de 2,6 GHz, elle a droit à une part de processeur de 38,4% à 46,2% sur ce nœud XEN particulier. Vous pouvez exécuter la commande cat / proc / cpuinfo pour découvrir l'architecture du processeur derrière vos instances EC2.
Portez une attention particulière à l'indice sur la façon de gérer les outils qui ne connaissent pas les mathématiques spéciales:
Une autre option qui peut être utilisée pour moderniser les outils de surveillance basés sur un agent ou SNMP existants, qui ne s'intègrent pas à CloudWatch, consiste à utiliser la métrique d'inactivité du processeur. Tout ce que vous avez à faire est de réécrire les règles pour mesurer le CPU inactif au lieu de CPU occupé. Par exemple, si vous avez un seuil> 75% défini pour le CPU occupé, créez une règle <25% pour le CPU inactif. Si le processeur est inactif à 0, votre serveur est lié au processeur.
Très simple. Très agréable.
Lorsque vous exécutez top dans l'instance EC2, il mesure l'utilisation du processeur de la machine principale physique qui exécute votre instance et d'autres. Cette utilisation est incorrecte si vous souhaitez mesurer l'utilisation du processeur de votre instance seule (l'unité de calcul EC2 affectée à votre instance).
C'est pourquoi les métriques cloudwatch sont réelles car elles sont mesurées en dehors de l'instance pour les unités de calcul EC2 affectées à votre instance seule.
Voir ici - https://forums.aws.amazon.com/thread.jspa?threadID=99993