Ich werfe normalerweise ein einfaches Skript für diese Art von Arbeit zusammen.
Werfen Sie einen Blick auf die Kernel-Dokumentation für das proc-Dateisystem (Google 'linux proc.txt').
Die erste Zeile von /proc/stat
(Abschnitt 1.8 in proc.txt) gibt Ihnen kumulative CPU-Auslastung Statistiken (d. H. Benutzer, nett, System, Leerlauf, ...). Für jeden Prozess liefert die Datei /proc/$PID/stat
(Tabelle 1-4 in proc.txt) sowohl prozessspezifische CPU-Nutzungsstatistiken als auch Statistiken zur Speicherauslastung (siehe rss).
Wenn Sie ein wenig googlen, finden Sie viele detaillierte Informationen zu diesen Dateien und Hinweise zu Bibliotheken/Apps/Code-Schnipsel, die Ihnen helfen können, die benötigten Werte zu erhalten/abzuleiten. In diesem Sinne konzentriere ich mich auf die High-Level-Strategie.
Für CPU-Statistiken verwenden Sie Ihre bevorzugte Skriptsprache, um eine ausführbare Datei zu erstellen, die eine Reihe von Prozess-IDs für die Überwachung benötigt. In einem festen Intervall (z. B. 1 Sekunde) die kumulativen Summen für jeden Prozess und das System als Ganzes abfragen/berechnen. Schreiben Sie während jedes Poll-Intervalls alle Ergebnisse in einer einzigen Zeile in stdout.
Schreiben Sie für Speicherstatistiken ein ähnliches Skript, aber protokollieren Sie einfach die Auslastung pro Prozessspeicher. Der Speicher ist etwas einfacher, da wir direkt die Momentanwerte erhalten.
Führen Sie dieses Skript für die Dauer Ihres Tests aus, übergeben Sie den Satz von Prozess-IDs, die Sie überwachen möchten, und leiten Sie seine Ausgabe in eine Protokolldatei um.
./logcpu $(pidof foo) $(pidof bar) > cpustats
./logmem $(pidof foo) $(pidof bar) > memstats
Importieren Sie den Inhalt dieser Dateien in eine Tabelle (für bestimmte Anwendungen ist das so einfach wie Kopieren/Einfügen). Für die CPU sind Sie auf Momentanwerte angewiesen, haben aber kumulative Werte. Sie müssen also einige Tabellenkalkulationen durchführen, um diese Werte abzuleiten (es ist nur das Delta 't (x + 1) - t (x)'). Natürlich könnten Sie Ihren CPU-Logger das Delta schreiben lassen, aber Sie werden etwas mehr Zeit für das Skript aufwenden.
Verwenden Sie schließlich Ihre Tabelle, um ein schönes Diagramm zu erstellen.
Überwachungsdaten enthält alle MMonit es ein Muss ist. Single Monit ist kostenlos, Cluster MMonit ist bezahlt. – erm3nda