Pourquoi la surveillance ec2 affiche-t-elle 100% de CPU et ne dépasse-t-elle que 20%?

10

J'exécute un script python sur une instance ec2 qui insère des lignes dans une base de données sur une autre instance. Dans la surveillance d'ec2, j'ai vu une utilisation de 100% du processeur, alors que top n'affiche que 20% pour le processus python. Qu'est-ce qui manque du haut? Frais généraux du réseau?

RickyA
la source
Et tous les autres processus?
Ladadadada
À environ 0% d'utilisation
RickyA
Je suis aussi dans dillima, j'envoie ma commande TOP reprot au client :)
Manish Shrivastava

Réponses:

18

Les données exposées par topsont souvent insuffisantes ou trompeuses dans des environnements virtualisés comme Amazon EC2 et le pourcentage signalé dépend de votre type d'instance et de l'utilisation du cœur du processeur sous-jacent (qui ne correspond généralement pas au matériel virtualisé qui vous est présenté par l'hyperviseur), parmi d'autres choses - ce que vous voyez est très probablement provoqué par le temps de vol du processeur respectif tel qu'exposé dans la plupart des outils de surveillance Unix / Linux actuels - voir par exemple les colonnes% vol ou st dans sarou top:

st - Steal Time
La quantité de CPU «volée» de cette machine virtuelle par l'hyperviseur pour d'autres tâches (telles que l'exécution d'une autre machine virtuelle).

Le post de blog EC2 Monitoring: le cas du CPU volé offre une belle exploration et illustration de ce sujet:

Lorsque la commande du haut affiche 40% de CPU occupé, mais CloudWatch indique que le serveur est à 100% - de quel côté prenez-vous? La réponse est simple (CloudWatch est correct, le haut ne l'est pas) [...]

Veuillez noter que cette métrique d'hyperviseur semble être (facilement) accessible uniquement sur les systèmes Unix / Linux, mais ne semble pas être observable sur Windows (pour l'instant), voir ma question Existe-t-il un équivalent Windows du temps de vol du processeur d'Unix? pour en savoir plus sur ce problème.

Steffen Opel
la source
2
Merci pour le post sur le blog. Cela le rend vraiment clair. C'est vraiment bon de le savoir puisque je suis sur le point de déployer Ganglia, et il serait dommage de mesurer les mauvaises mesures. Mesurer% idletime!
RickyA
Dans mon cas, cloudwatch signale également une utilisation réseau de 3 Mo / s, mais quand je regarde sur mon serveur (avec iftop, iptraf, netstat, etc.), je vois que la seule chose avec une connexion réseau est mon ssh dans le serveur. Ce dont je doute vraiment, c'est d'utiliser 3 Mo / s ...
Benubird
-2

Amazon vérifie probablement la charge et aucun pourcentage d'utilisation de TOP. Si vous avez deux processus sur le processeur, ils peuvent être utilisés à 20% mais vous pouvez avoir la charge 2.

MartinSVK
la source
Je ne sais pas ce que tu veux dire avec la charge 2 ...
RickyA
Vous pouvez avoir une charge système à 2. Deux processus sur le processeur mais avec une faible utilisation.
MartinSVK