Linux: Pro-Prozess-Monitor, alle 10 Minuten, mit Verlaufszugriff

5

Ich wusste wirklich keinen besseren Weg, um meine Frage zu stellen, daher bekommst du eine schrecklich benannte Frage.

Ich werde erklären, was ich tun möchte, vielleicht hilft dir das, mir zu helfen.

Ich möchte, dass mein Linux-Rechner alle 10 Minuten alle Prozesse auf meinem Rechner überwacht. Die Informationen aus jedem Prozess, den ich benötige, sind der Name, die CPU-Auslastung, der zugewiesene (virtuelle) Speicher und der residente (RAM-) Speicher.

Wenn diese periodischen Berichte betrachtet würden, würden sie ungefähr so ​​aussehen:

PROCESS    CPU    RAM    VIRTUAL
name1    %    MB    MB
name2    %    MB    MB
...etc..etc

Diese Berichte sollten so gespeichert werden, dass ich zu einem späteren Zeitpunkt unter Angabe eines Datums- / Uhrzeitbereichs (Bereichs) darauf zugreifen kann. Zum Beispiel, wenn ich die Historie meiner Prozesse von 12:00:00 bis 12:00:00 sehen möchte, kann ich - und es sollte mir die Historie der Prozesse für alle 10 Minuten zwischen diesen geben Datums- / Uhrzeitgrenzen.

Das Format der Rückgabe ist nicht wichtig, das wird sowieso von einem Skript behandelt und kann in alles geändert werden, was ich brauche.

Ich habe mich bisher mit ein paar Dingen befasst, aber nichts gefunden, das meine Bedürfnisse eindeutig erfüllt. Unter anderem habe ich gesucht: sar , free (1) , top (1) .. und ein paar andere Dinge.

Es sollte ein einfaches Problem sein, ich kann bereits alle diese Informationen sehen, indem ich einfach auf meine schaue htop, aber ich benötige nur ein Tool, das alle 10 Minuten die gewünschten Felder für jeden Prozess sammelt und mich dann auch Teile davon extrahieren lässt Daten basieren auf Datums- / Zeitbereichen.

Anmerkung: Ich habe nur begrenzte Erfahrung mit Linux. Bitte geben Sie detaillierte Informationen an.

note2: Der gewünschte Ausgang ist ungefähr so ​​(nach Empfang des gewünschten Bereichs)

CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......

Die gleiche Idee mit den anderen Informationen.

Inbar Rose
quelle
Ich glaube collectd kann machen was du willst collectd.org Es werden rrdtool-Dateien erstellt, die Sie jedoch grafisch darstellen können.
Derobert

Antworten:

8

Versuchen Sie es atop.

Diese Systeminformationen werden alle 5 oder 10 Minuten (je nachdem, was Ihre Distribution für Sie ausgewählt hat) als Daemon protokolliert und in Binärdateien abgelegt. Dann benutze

atop -r

Zum interaktiven Anzeigen des Inhalts der heutigen Standard-Protokolldatei. Es ist wie htopmit ein paar zusätzlichen E / A-Informationen, mit denen Sie in die Vergangenheit reisen und sehen können, was in diesen Momenten passiert ist. Drücken Sie t, um vorwärts zu gehen, und Shift+ t, um zurück zu gehen.

Sie können es auch auf einen bestimmten Zeitraum verweisen. Aus der Manpage:

With the flag -b (begin time) and/or -e (end time) followed by a time argument
of the form HH:MM, a certain time period within the raw file can be selected.

Es ist einfach nicht übermäßig konfigurierbar, was in die RAW-Dateien geschrieben werden soll.

Ich empfehle Ihnen, auch die Hilfeseite von atop zu lesen, um zu beginnen, z. B. den Inhalt der gestrigen Protokolldatei zu lesen.

So lief meine Maschine 'zarafa' heute Morgen zwischen 7:35:40 und 7:45:40:

oben Screenshot

gertvdijk
quelle
Sieht nach einem guten Start aus - aber kann dies die Art von Zugriff unterstützen, die ich benötige? über - Datum / Uhrzeit Umfang (Bereich) Zugriff? Wenn nicht, wird das Datum / die Uhrzeit des jeweiligen Eintrags angezeigt, damit ich mein eigenes Parsing durchführen kann? Wie lange werden alte Informationen aufbewahrt? Kann ich entscheiden, welche Informationen gesammelt werden?
Inbar Rose
2
@InbarRose Das ist nur RTFM imo wie ich bereits in meiner Antwort darauf hingewiesen habe. Ich schlage vor, eine spezifischere Frage zu stellen, wenn Sie nicht dazu gebracht werden können, das zu tun, was Sie wollen.
gertvdijk