Re: Prozessor-Auslastung auslesen

From: Patrick Hess <patrick_hess(at)t-online.de>
Date: Tue, 28 Jan 2003 22:04:33 +0100

Moin,

Oliver Fromme schrieb:
> Patrick Hess <patrick_hess(at)t-online.de> wrote:
> > siehe Subject: Ich möchte gerne die Prozessor-Auslastung, so wie
> > sie beispielsweise "top" als "CPU states" anzeigt, aus einer Datei
> > auslesen.
>
> Huch, wieso aus einer Datei?

Jo, Linux-/proc halt noch im Hinterkopf...

> > Ich dachte da sofort an /proc (ich weiß, Linux-Seuche), dort finde
> > ich aber nichts, was ich gebrauchen könnte.
>
> Wäre auch übel, wenn's das da gäbe. Das Konzept von Linux,
> den Kernel irgendwelche Daten in ASCII rendern zu lassen,
> um diese dann wiederum mit Programmen wie z.B. top zu par-
> sen, ist absurd.

Ja, ich habe schon gemerkt, daß das Linux-/proc-Konzept bei euch
nicht so gut ankommt. Um mal schnell irgendwas auszulesen fand ich
es eigentlich ganz nett *duck*.

> Falls Du die Werte, die top anzeigt, in einem Shellscript
> brauchst, dann hol sie Dir halt von top:
>
> #!/bin/sh -
> read x x PUSER x PNICE x PSYS x PINT x PIDLE x <<daer
> $(top -bd 2 0 | grep "CPU states:")
> daer
> echo "User: $PUSER"
> echo "Nice: $PNICE"
> echo "System: $PSYS"
> echo "Interrupt: $PINT"
> echo "Idle: $PIDLE"

Klasse, das ist doch schon besser als das, was ich mir mit "vmstat"
und "colrm" zurecht gefummelt hatte.

> Allerdings kann sich das Format der Zeile je nach Version
> geringfügig unterscheiden; entsprechende müßtest Du die
> read-Zeile anpassen.

Nein, hat bei mir so funktioniert, wie du es geschrieben hast
(hier werkelt ein FreeBSD 4.5-Release).

> Wenn Dir user/system/idle genügen, bekommst Du diese Werte
> auch aus vmstat. Das ist wahrscheinlich etwas zuverlässi-
> ger mit dem Parsen, weil sich das Format wohl kaum ändern
> wird.

Das Ausgabeformat an sich läßt sich aber recht schlecht mit "cut"
bearbeiten. Da wäre wohl "awk" angebracht, ich kenne mich damit aber
leider nicht aus. Hm, ich habe hier noch "Linux in a Nutshell"
rumliegen, da gibt es AFAIR ein eigenes awk-Kapitel... Da werde
ich wohl einmal reinschauen.

> Entscheidend ist, daß man die zweite Ausgabezeile
> nehmen muß, da die erste nur die Mittelwerte seit dem Re-
> boot angibt.

Ich habe bei meinem "vmstat" nur eine Zeile:

serv1:~ > vmstat
 procs memory page disks faults cpu
 r b w avm fre flt re pi po fr sr ad0 md0 in sy cs us sy id
 0 1 0 18220 197280 1 0 0 0 5 2 0 0 110 112 16 0 0 99
serv1:~ >

Egal, die Variante mit "top" gefällt mir eh besser.

> Falls ich Deine Frage mißverstanden habe, bitte ich um
> Nachsicht und Erleuchtung. :-)

Nein, du hast genau ins Schwarze getroffen. Danke!

Gruß,
Patrick

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 28 Jan 2003 - 22:16:19 CET

search this site