Wie einen Prozess zu überwachen, der in Linux die CPU -, Speicher-und Zeit
Wie kann ich den benchmark ein Prozess in Linux? Ich brauche etwas wie "top" und "Zeit" zusammen, die für einen bestimmten Prozess-Namen (es ist ein Multiprozess-Programm so viele PIDs gegeben werden)?
Außerdem würde ich gerne ein Grundstück haben, im Laufe der Zeit der Speicher und cpu-Auslastung für diese Prozesse und nicht nur die letzten zahlen.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgenden sind die tools für die überwachung eines linux-Systems
top
,free -m
,vmstat
,iostat
,iotop
,sar
,netstat
, etc. Es kommt nichts in der Nähe dieser linux-Programm beim Debuggen ein problem. Diesen Befehl geben Sie ein klares Bild, was Los ist in Ihrem serverIch in der Regel werfen zusammen ein einfaches Skript für diese Art von Arbeit.
Werfen Sie einen Blick auf die kernel-Dokumentation zum proc-Dateisystem (Google "linux proc.txt').
Die erste Zeile
/proc/stat
(Abschnitt 1.8 in proc.txt) geben Sie die kumulierten cpu-Nutzung-stats (also user, nice, system, idle, ...). Für jeden Prozess, der die Datei/proc/$PID/stat
(Tabelle 1-4 in proc.txt) wird Ihnen sowohl Prozess-spezifische cpu-Nutzung-stats und Speicher-Nutzung-stats (siehe rss).Wenn du google ein bisschen finden Sie viele detaillierte Informationen über diese Dateien und Verweise auf Bibliotheken /apps /code-snippets, die Ihnen helfen können, erhalten /Ableitung der Werte, die Sie benötigen. Mit dem im Verstand, konzentriere ich mich auf die high-level-Strategie.
CPU stats, verwenden Sie Ihre Lieblings-Skriptsprache zum erstellen einer ausführbaren Datei, dass dauert ein Satz von Prozess-ids für die überwachung. In einem festen Intervall (z.B. 1 Sekunde) poll /berechnen Sie die Summen für jeden Prozess und das system als ganzes. Bei jedem poll-Intervall, schreiben Sie alle Ergebnisse in einer einzigen Zeile auf die Standardausgabe.
Für Speicher-Statistiken an, schreiben Sie ein ähnliches Skript, sondern einfach melden, per-process memory usage. Speicher ist ein bisschen einfacher, da wir direkt erhalten, die momentanen Werte.
Führen Sie die folgenden Skripts für die Dauer des Tests, vorbei an der Reihe von Prozessen, die ids, die Sie überwachen möchten und Umlenkung dessen Ausgabe in eine log-Datei.
Importieren Sie den Inhalt dieser Dateien in eine Excel-Tabelle (für bestimmte Anwendungen ist dies so einfach wie das kopieren /einfügen). Für CPU, Sie sind nach momentanen Werte aber haben die kumulierten Werte, so dass Sie tun müssen, einige kleinere Tabellenkalkulation arbeiten zur Ableitung dieser Werte (es ist nur die delta t '(x + 1) - t(x)'). Natürlich könnten Sie die cpu-logger schreiben, der delta, aber Sie verbringen ein wenig mehr Zeit nach vorne auf das Skript.
Schließlich verwenden Sie Ihre Tabelle zu generieren, die einen schönen plot.