Wir wissen, dass dies top
ein Befehl ist, um die CPU-Auslastung unter Linux zu ermitteln, und andere Methoden,
cat /proc/stat
die von top verwendet werden.
Welche anderen Methoden gibt es, um die CPU-Auslastung in der Linux-Befehlszeile abzurufen?
Anwendungsfall: Die Ausgabe dieses Befehls wird von einem Skript verwendet, um die CPU-Auslastung kontinuierlich zu protokollieren. top
und /proc/stat
geben Sie eine detaillierte Verwendung, die schwer zu protokollieren ist. Gibt es eine einfachere Möglichkeit, die CPU-Informationen abzurufen?
linux
command-line
Fasil
quelle
quelle
sed
das Ergebnis sehen, wenn Sie nur den Wert wollen.top
und das andere gibt einen sehr nützlichen Befehl. Es ist kein Ich benutze X, wie wäre es mit dir? Frage, aber eine Wie mache ich X Frage. Abstimmung zur Wiedereröffnung.Antworten:
Wie andere gesagt haben, ist der beste Weg wahrscheinlich
top
. Es muss ein wenig optimiert und analysiert werden, aber Sie können es erhalten, um die aktuelle CPU-Auslastung als Prozentsatz anzugeben.top
teilt die CPU-Auslastung zwischen Benutzer, Systemprozessen undnice
Prozessen auf, wir wollen die Summe der drei. So können wirtop
imb
atch-Modus laufen, der es uns ermöglicht, seine Ausgabe zu analysieren. Wie hier erläutert , gibt die erste Iteration vontop -b
die Prozentsätze seit dem Start zurück. Daher benötigen wir mindestens zwei Iterationen (-n 2
), um den aktuellen Prozentsatz zu erhalten. Um died
Arbeit zu beschleunigen, können Sie die Verzögerung zwischen den Iterationen auf einstellen0.01
. Schließlich geben Siegrep
die Zeile mit den CPU-Prozentsätzen ein und verwenden dann,gawk
um Benutzer-, System- und nette Prozesse zu summieren:Ich dachte, Sie könnten diese Informationen auch erhalten,
ps -o pcpu ax
indem Sie die prozentuale Nutzung jedes laufenden Prozesses hinzufügen. Leider wird, wie hier erläutert ,ps
"der Prozentsatz der Zeit zurückgegeben, die während der gesamten Lebensdauer eines Prozesses ausgeführt wurde", was nicht erforderlich ist.BEARBEITEN
Basierend auf Ihrem Kommentar unterscheidet sich Ihre Version von
top
meiner und Sie sollten diese stattdessen verwenden:Um Probleme mit der Lokalisierung zu vermeiden, setzen Sie das Gebietsschema auf C:
quelle
sar
ist der endgültige Weg, um es zu tun. So wird zum Beispielsar -u
so etwas ausgegeben:Sie sagen nicht, welches Linux Sie verwenden, aber für CentOS / RedHat müssen Sie das
sysstat
Paket installieren , und ich denke, dass es unter Debian / Ubuntu dasselbe ist.Sie können sar auch verwenden, um Statistiken ad hoc zu erfassen :
Sammelt alle 60 Sekunden 600 Mal Statistiken, also 600 Minuten.
quelle