Warum liegt die CPU-Auslastung meines AWS T2.Medium EC2 konstant bei 27 %, wird beim Ausführen des Top-Befehls aber mit 100 % angezeigt?

Warum liegt die CPU-Auslastung meines AWS T2.Medium EC2 konstant bei 27 %, wird beim Ausführen des Top-Befehls aber mit 100 % angezeigt?

Ich führe meine PHP-Laravel-Anwendung in einer AWS EC2-Instanz (T2.Medium, 2 Kerne) über Laravel Forge aus. Seit 5 Monaten sehe ich im AWS-Konsolendiagramm eine konstante CPU-Auslastung von 27 %. Ich habe also versucht, dies durch Ausführen des Befehls „top“ zu überprüfen, und dort sehe ich 100 % CPU.

Also möchte ich verstehen:

1. What is my actual CPU utilization out of the 2 cores of T2.medium?
2. In the top command result, forge is utilizing 100% CPU, what is the best way to track what cause the high CPU so that I can lower the CPU utilization.

Bitte beachten Sie, dass diese EC2-Instanz der Anwendungsserver ist. Für die Datenbank verwende ich eine andere Instanz. Sie hat keine hohe CPU-Auslastung.

AWS-CPU-Auslastungsdiagramm TOP-Befehlsergebnis CPU-Guthabennutzung CPU-Guthaben

Antwort1

topzeigt den %CPU als Prozentsatz eineseinzelKern. Deshalb wird manchmal eine Zahl über 100 angezeigt. Wenn Sie es ausführen, cat /proc/cpuinfosollten Sie Einträge für jeden verfügbaren Kern sehen. 100 % in der CPU-Spalte bedeutet also nur, dass ein ganzer Kern verwendet wird – wenn die Instanz 4 Kerne hat (oder 2 Kerne mit Hyperthreading), sind es insgesamt nur 25 %.

Ich verwende es gern, htopda ich finde, dass es eine bessere Visualisierung und Anzeige bietet.

verwandte Informationen