2 Stimmen

Verwendung von "top" in Linux als semi-permanente Instrumentierung

Ich versuche, den besten Weg zu finden, um 'top' als semi-permanente Instrumentierung bei der Entwicklung einer Box mit Embedded Linux zu verwenden. (Die Instrumentierung wird aus den endgültigen Test- und Produktionsversionen entfernt werden).

In einem ersten Schritt füge ich dies einfach zu init.d hinzu:

top -b -d 15 >/tmp/toploop.out &

Dies läuft alle 15 Sekunden im "Batch"-Modus ab. Nehmen wir an, dass /tmp reichlich Speicherplatz hat

Fragen:

  1. Sind 15 Sekunden ein guter Wert für die allgemeine Überwachung?
  2. Abgesehen vom Festplattenspeicherplatz, wie stark wird der Zustand des Systems dadurch beeinträchtigt?
  3. Welche anderen (vielleicht besseren) Instrumente könnten auf diese Weise eingesetzt werden?

5voto

David Schmitt Punkte 56455

Blick auf gesammelt . Es handelt sich um ein sehr leichtgewichtiges Systemüberwachungs-Framework, das auf Leistung ausgelegt ist.

2voto

Steve K Punkte 19080

Wir verwenden sysstat um Dinge wie diese zu überwachen.

1voto

Paul Tomblin Punkte 172816

Sie werden feststellen, dass vmstat und iostat mit einer Verzögerung und ohne Wiederholungszähler eine bessere Option sind.

1voto

theraccoonbear Punkte 4157

Ich vermute, dass 15 Sekunden mehr als ausreichend wären, es sei denn, man möchte das Geschehen tatsächlich in Echtzeit verfolgen, aber das scheint hier nicht der Fall zu sein.

Was die Belastung angeht, so habe ich auf einem PIII 900Mhz mit 768MB RAM, auf dem Ubuntu läuft (ich bin mir nicht sicher, welche Version, aber nicht mehr als ein Jahr alt), alle 0,5 Sekunden eine Top-Aktualisierung, und die CPU-Auslastung beträgt etwa 2%. Bei 15s Updates, sehe ich 0,1% CPU-Auslastung.

Je nachdem, was Sie genau wollen, können Sie die Ausgabe von uptime, free und ps verwenden, um die meisten, wenn nicht alle Informationen von top zu erhalten.

1voto

terson Punkte 1307

Wenn es Ihnen um die Gesamtbelastung geht, ist die Betriebszeit wahrscheinlich ausreichend. Wenn Sie jedoch spezifische Informationen über Prozesse wünschen, abenteuerlustig sind und das /proc-Dateisystem aktiviert haben, sollten Sie Ihre eigenen Tools schreiben. Der Hauptvorteil in dieser Umgebung besteht darin, dass Sie sich genau auf das konzentrieren können, was Sie wollen, und die Belastung des Systems minimieren können.

Das proc-Dateisystem gibt Ihrer Anwendung Lesezugriff auf den Kernel-Speicher, in dem viele der interessanten Variablen gespeichert sind. Das Lesen von /proc ist eine der einfachsten Möglichkeiten, diese Informationen zu erhalten. Außerdem können Sie möglicherweise mehr Informationen erhalten, als von top bereitgestellt werden. Ich habe dies in der Vergangenheit getan, um die Zeit zu ermitteln, die dieser Prozess im Benutzer und im System verbracht hat. Außerdem können Sie auf diese Weise Informationen über die Anzahl der vom Prozess geöffneten Dateideskriptoren erhalten. Sie können dies auch verwenden, um detaillierte Informationen darüber zu erhalten, wie das Netzwerksystem arbeitet.

Viele dieser Informationen werden von anderen Anwendungen vorverarbeitet und können verwendet werden, wenn Sie die benötigten Informationen erhalten. Es ist jedoch recht einfach, die Rohdaten zu lesen. Machen Sie eine man proc für weitere Informationen.

0 Stimmen

+1. Ja, ich bin ziemlich vertraut mit /proc! Ich hatte gehofft, nichts schreiben zu müssen, aber Sie haben Recht, dass es von Vorteil ist, wenn man sich genau auf das konzentrieren kann, was man sucht. OK, wo ist mein Emacs-Fenster...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X