Wie kann ich die gesamte CPU-Auslastung einer Linux-Maschine mit 1 oder n CPU-Kernen ermitteln?

Wie kann ich die gesamte CPU-Auslastung einer Linux-Maschine mit 1 oder n CPU-Kernen ermitteln?

Ich verwende derzeit die folgende Methode, um den Leerlaufwert der CPU-Auslastung aus dem obersten Befehl zu extrahieren und den Wert von 100 abzuziehen. Ist diese Methode korrekt und gibt es eine bessere Möglichkeit, dasselbe zu erreichen?

Außerdem ist meine Linux-VM eine abgespeckte Version und hat nur wenige grundlegende Tools wie top. Die Installation anderer Tools ist keine Option, da auch der Paketmanager entfernt wurde.

CPU_IDLE="$(top -bn2 | grep -F '%Cpu' | tail -n 4 | gawk '{print $8 $9}' | tr -s '\n\:\,[:alpha:]' ' '| gawk '{print $2}'),"

Antwort1

Ja, Ihre Methode ist in Ordnung.

Aber Sie könntenmpstatum weitere Details zu erhalten.

Es ist enthalten insysstatPaket, und wenn Sie es nicht installiert haben ...

Unter CentOS/RHEL:

sudo yum install sysstat

Unter Ubuntu / Debian:

sudo apt-get install sysstat

Verwenden Sie den folgenden Befehl, wenn Sie keine Berechtigung zum Installieren eines Pakets haben

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

verwandte Informationen