einzelne CPU% in 'Top'-Ausgabe

10

Normalerweise drücken wir im interaktiven Modus von oben '1', um einzelne CPU% anzuzeigen.

Ich bin jedoch nicht in der Lage, die Logik herauszufinden, um die gleiche Ausgabe im Batch-Modus zu erhalten, dh

top -n1b

Ich leite diese Ausgabe in eine Datei um, um sie später anzuzeigen, und solche Dinge, also brauche ich den Batch-Modus. Ist es möglich? Die Installation eines separaten Tools hierfür ist nicht möglich.

Ich suche nach einer Option, die mir fehlt, oder nach einer Möglichkeit, die Ausgabe zu erfassen.

Uday
quelle

Antworten:

7

Wechseln Sie im interaktiven Bereich oben durch Eingabe zu einer einzelnen CPU% 1und schreiben Sie die aktuelle Konfiguration durch Eingabe in eine Datei W. Dies wird erstellen ~/.toprc. Jetzt top -n1bwird auch pro CPU% ausgegeben. Möglicherweise müssen Sie die .toprcDatei kopieren und die Berechtigungen ändern, wenn Ihr Skript als anderer Benutzer ausgeführt wird.

jwhitlock
quelle
1
Das Q fragt nach dem Batch-Modus.
Charles Stewart
2
Ich werde versuchen, klarer zu sein: Ich kenne keine Möglichkeit in der Befehlszeile , oben zu sagen, "wenn Sie sich im Batch-Modus befinden, drucken Sie die einzelnen CPU%". Top liest jedoch .toprcim Batch-Modus, sodass Sie diese Datei wie beschrieben einrichten können. Anschließend erhalten Sie auch im Batch-Modus eine einzelne CPU%. Oder zumindest für mich (Procps Version 3.2.7)
Jwhitlock
muss es sein top? Warum nicht ps% CPU verwenden und sortieren? Ich finde% CPU sogar irreführend, ich neige dazu, nach VSIZE oder RSS zu sortieren, weil meine Server oft von falschen Speicherfressern heruntergefahren werden.
memnoch_proxy
5

Muss es top sein? Vielleicht brauchst du mpstat

  mpstat -A
Dan Andreatta
quelle
1

Dies ist eine Art Hack, scheint aber zu funktionieren:

$ ssh local.ubuntu.server "(sleep 1;echo 1)|TERM=xterm script -c top & sleep 2;killall script"|grep '^%Cpu'
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.1 st
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
AX Labs
quelle
0

Ich weiß nicht, wie ich das mit der Procutils-Spitze richtig machen soll. Vielleicht echo k|top -n2 -d1.0macht der Trick? Beachten Sie, dass die erste Ausgabe von top keine nützlichen Informationen zur Verwendung von CPU% liefert: top versucht nur, CPU% zu schätzen, seit es ausgeführt wird. Daher die -n2. Sie können sich auf die zweite Statistikliste beschränken, indem Sie alles bis zur zweiten Leerzeile wegwerfen.

Mit dem BSD-Top top -l2 -s1 -o cpuwerden (getestet) die Top-Statistiken zweimal gedruckt, sortiert nach CPU%. Nur für den Fall, dass auf Ihrem System ein BSD-Top lauert ...

Charles Stewart
quelle
0

Sie können oben verwenden. Es ist ein sehr umfassender Monitor, auf dem Sie Prozesse sowie Systemressourcen wie Speicher und CPU überwachen können. Es gibt eine individuelle Ausgabe für jeden CPU-Kern.

Für Ubuntu-Systeme ist es als Paket im Repo verfügbar, sodass Sie es direkt über apt-get / synaptic installieren können.

Für Redhat und abgeleitete Systeme finden Sie die Pakete hier: http://dag.wieers.com/rpm/packages/atop/

s1d
quelle