Warum zeigt die ec2-Überwachung 100% CPU und nur 20%?

10

Ich führe ein Python-Skript auf einer ec2-Instanz aus, das Zeilen in eine Datenbank auf einer anderen Instanz einfügt. Bei der Überwachung von ec2 habe ich eine CPU-Auslastung von 100% festgestellt, während oben nur 20% für den Python-Prozess angezeigt werden. Was fehlt oben? Netzwerk-Overhead?

RickyA
quelle
Was ist mit all den anderen Prozessen?
Ladadadada
Bei rund 0% Auslastung
RickyA
Ich bin auch in Dillima, ich sende meinen TOP-Befehl reprot an den Client :)
Manish Shrivastava

Antworten:

18

Die von topverfügbar gemachten Daten sind in virtualisierten Umgebungen wie Amazon EC2 häufig unzureichend oder irreführend. Der gemeldete Prozentsatz hängt unter anderem von Ihrem Instanztyp und der zugrunde liegenden Prozessorkernauslastung ab (die normalerweise nicht mit der virtualisierten Hardware übereinstimmt, die Ihnen vom Hypervisor angezeigt wird) andere Dinge - was Sie sehen, wird höchstwahrscheinlich durch die jeweilige CPU-Diebstahlzeit verursacht, wie sie heutzutage in den meisten verwandten Unix / Linux-Überwachungstools verfügbar ist - siehe z. B. Spalten% stehlen oder st in saroder top:

st - Steal Time
Die Menge an CPU, die der Hypervisor für andere Aufgaben (z. B. das Ausführen einer anderen virtuellen Maschine) von dieser virtuellen Maschine "gestohlen" hat.

Der Blog-Beitrag EC2-Überwachung: Der Fall der gestohlenen CPU bietet eine schöne Erkundung und Illustration dieses Themas:

Wenn der oberste Befehl 40% CPU ausgelastet anzeigt, CloudWatch jedoch angibt, dass der Server zu 100% ausgelastet ist - auf welcher Seite stehen Sie? Die Antwort ist einfach (CloudWatch ist korrekt, oben nicht) [...]

Bitte beachten Sie, dass diese Hypervisor-Metrik nur auf Unix / Linux-Systemen (leicht) zugänglich zu sein scheint, aber (noch) nicht unter Windows beobachtbar zu sein scheint. Siehe meine Frage. Gibt es ein Windows-Äquivalent zur Unix-CPU-Diebstahlzeit? Weitere Informationen zu diesem Problem.

Steffen Opel
quelle
2
Danke für den Blogpost. Das macht es wirklich klar. Es ist wirklich gut, das zu wissen, da ich Ganglia einführen werde, und es wäre eine Schande, die falschen Metriken zu messen. % Leerlaufzeit messen!
RickyA
In meinem Fall meldet Cloudwatch auch eine Netzwerknutzung von 3 MB / s, aber wenn ich auf meinen Server schaue (mit iftop, iptraf, netstat usw.), sehe ich, dass das einzige, was mit einer Netzwerkverbindung verbunden ist, mein ssh in den Server ist. Was ich wirklich bezweifle, ist die Verwendung von
3 MB
-2

Amazon überprüft wahrscheinlich die Last und keine prozentuale Nutzung von TOP. Wenn Sie zwei Prozesse auf CPU haben, können diese zu 20% genutzt werden, aber Sie können Last 2 haben.

MartinSVK
quelle
Ich bin nicht sicher, was du mit Ladung 2
meinst
Sie können die Systemlast bei 2 haben. Zwei Prozesse auf der CPU, jedoch mit geringer Auslastung.
MartinSVK