Ich versuche, eine genaue Anzeige meiner verwendeten CPU (in Prozent) von zu erhalten top
. Dies ist der Befehl, den ich zum Testen ausführe:
top -n1 | awk '/Cpu\(s\):/ {print $2}'
Dies ergibt:
10.7%us,
Welches ist das richtige Stück von Daten, die ich will. Jedes Mal, wenn ich den Befehl ausführe, erhalte ich jedoch die gleiche Ausgabe, obwohl mein System unterschiedlich belastet wird (und ganz zu schweigen htop
davon, dass meine Verwendung anders ist). Es scheint, dass top
meine CPU-Auslastung bei jedem Start gleich ist. Erst nach ein paar Frames werden mir die richtigen Werte angezeigt.
Es scheint nicht so, als ob ich die Ausgabe von top auf diese Weise analysieren kann. Deshalb suche ich nach anderen zuverlässigen Anwendungen, die mir ein genaues Ablesen der Shell ermöglichen. Ich mag es wirklich, wie htop
ich eine pro-Kern-Lesung geben kann.
Ich habe es versucht iostat
und mpstat
aber sie scheinen ungenaue und "langsam zu ändernde" Werte zu geben.
quelle
Antworten:
Ich benutze dieses Skript (aus diesem Thread auf den Arch Boards ):
quelle
Schauen Sie sich auch sar an . Die Implementierungen können von nix zu nix sehr unterschiedlich sein, es sollten jedoch grundlegende Systemstatistiken zu bestimmten Snapshots angezeigt werden. Ich bin nicht sicher , wie genau die Werte an dem Punkt sind , an dem der Befehl zuerst initialisiert wird, aber Sie könnten spielen , um zu sehen , wie sie im Vergleich zu
top
,iostat
usw.Die Ausgabe ist wie oben spaltenbasiert, sodass Sie in der Lage sein sollten, die Ausgabe an die Ergebnisse weiterzuleiten
awk
oder diesecut
zu bearbeiten.quelle
sar
vorher mit gemischten Ergebnissen versucht . Ich werde hier auf die Antwort von @ jasonwryan eingehen, da ich sie leicht so ändern kann, dass sie die Verwendung mit beiden meiner CPU-Kerne widerspiegelt.Haben Sie sich an
collectl
? Es ist praktisch, weil Sie die Ausgabe an Ihre Bedürfnisse anpassen können. Siehe: http://collectl.sourceforge.net/quelle
Was ich gefunden habe, ähnelt der Person, die die obige Frage gestellt hat, zumindest unter CentOS 6. Wenn ich im Batch-Modus nur eine Iteration lang top laufen lasse, scheint es die gleiche Zahl zu sammeln, fast so, als ob seine Tendenz darin besteht, mit was zu beginnen es erinnert sich zuletzt an die Anzeige. Top muss anscheinend mindestens ein paar Zahlen akkumulieren, damit Deltas die richtigen Prozentsätze liefern. Nachdem ich über 10 Iterationen getestet hatte, stellte ich fest, dass die zweite Zahl, die auftauchte, bei jedem Lauf eine ausreichende Differenzierung aufwies. Also, es ist einfach genug, um diese Leitung über zu bekommen
Ich mag es, dies mit der Betriebszeit für das Laden und einem Grep-Filter für ausgewählte Prozesse aus ps, wie z. B. Postgres-Abfragen, zu integrieren. Ein sehr einfacher Monitor kann mit dem Alias ausgedrückt werden:
quelle