Gibt es ein Skript, das die Speichernutzung als Diagramm anzeigt, beispielsweise als Tortendiagramm, wobei jeder Prozess ein separates Segment ist?
Ich bin nicht auf der Suche nach Munin, um die Speichernutzung über einen bestimmten Zeitraum aufzuzeichnen , sondern um die Speichernutzung pro Prozess zu einem bestimmten Zeitpunkt anzuzeigen.
Um meine Anfrage noch dunkler zu machen, ist es für einen kopflosen Server (also keine X-Anwendungen). Der einfachste Weg wäre, eine PNG-Datei oder möglicherweise eine HTML-Datei zu schreiben (die Javascript verwenden könnte, um Prozesse zu filtern, zwischen Diagrammtypen zu wechseln usw.).
Die Speicherabrechnung pro Prozess ist aus einer Reihe von Gründen schwierig, auf die ich gleich eingehen werde. Für eine einfache Überwachung reichen wahrscheinlich gkrellmd- oder nagios-Skripte aus. Wenn Sie eine höhere Genauigkeit wünschen, müssen Sie genauer hinschauen.
smem führt das Konzept der proportionalen Satzgröße ein :
Da große Teile des physischen Speichers in der Regel von mehreren Anwendungen gemeinsam genutzt werden, wird die Speichernutzung durch das als RSS (Resident Set Size) bezeichnete Standardmaß für die Speichernutzung erheblich überschätzt. PSS misst stattdessen den "fairen Anteil" jeder Anwendung an jedem gemeinsam genutzten Bereich, um eine realistische Messung zu erhalten.
Beispiel: Sie starten GNOME und veranlassen eine Reihe von Prozessen, einen für jedes Applet und Programm. Sie alle verlinken auf libglib. Linux lädt libglib in einen Speicherblock und ordnet es jedem Prozess zu, der libglib benötigt. Naive Memory Accounting zählt die volle libglib-Größe für jeden damit verknüpften Prozess.
smem teilt die Kosten von libglib auf die Prozesse auf, die es verwenden, um ein genaueres Bild der Realität zu erhalten. Es gibt auch eine Reihe von Optionen zum Anzeigen der Speichernutzung (von der Website):
Ja, ihr Vorschlag, 2.6.27 sei einigermaßen neu, ist ziemlich lächerlich. Die einzigen Distributionen, die ich kenne, sind Fedora 10 und Ubuntu 9.01.
Dave Cheney
9.04; Ubuntu 8.10 wird mit 2.6.27 ausgeliefert, 2.6.30 ist jedoch in rc3.
Jldugger
Ich entschuldige mich dafür, dass ich mich zu lange in RHEL aufgehalten habe, wo 2.6.18 als neu angesehen wird.
Dave Cheney
5
Mir fällt nichts von der Stange ein
Eine Kombination aus einem PHP-Skript, das ps -AH v | ausführt awk '{print $ 8, $ 9, $ 10}' und die Verwendung mit pChart könnte Ihnen eine Webseite geben, die das tut, wonach Sie suchen? (Verwendung in KB, Prozentsatz des Gesamt- und Prozessnamens)
+1, darüber habe ich mit Google Chart API nachgedacht. :)
Knoten
guter Punkt. Google Chart API ist wahrscheinlich schneller zu arbeiten mit ...
Mark Regensberg
2
Schauen Sie sich sarface an - es hängt von den sar-Daten ab und Sie können Ihre Speichernutzung (und alle anderen sar / sysstat-Daten) live überwachen.
Vergessen Sie nicht das Sammeln, wenn Sie sich wirklich für niedrigere Detailstufen interessieren. Im Folgenden finden Sie ein Beispiel für die Arten der Speicherauslastung pro Prozess, die gemeldet werden kann:
RECORD 1 cag-dl585-02 (1244758290.002) (Do 11. Juni, 18:11:30 2009)
PROZESSZUSAMMENFASSUNG (Zähler sind / s)
# PID-Benutzer S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF-Befehl
9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
9108 root S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
9120 root S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
9173 xfs S 20904 K 0 1828 K 1124 K 88 K 104 K 3084 K 0 0 xfs
Wenn Sie an bestimmten Prozessen interessiert sind, können Sie geeignete Filter angeben (einschließlich eines Schalters zum Anzeigen von Threads).
Und wenn Sie sich allgemein für Speicher interessieren, können Sie auch Plattendetails anzeigen und es wird sogar ein vmstat-Format ausgegeben. Warum sollten Sie Daten im vmstat-Format anzeigen, wenn das vorhandene Tool dies bereits tut? Das ist ganz einfach - mit collectly können Sie Statistiken zu einer Datei protokollieren und diese später in verschiedenen Formaten wiedergeben.
Analysieren Sie die Ausgabe und speichern Sie sie im durch Kommas getrennten Format in einer Textdatei.
Öffnen Sie die durch Kommas getrennte Datei in Excel.
Zeichnen Sie die Grafik für diese Daten mit dem Diagramm-Dienstprogramm von Excel.
Wenn Sie Speicher-Snapshots in verschiedenen Zeitintervallen erstellen möchten ... stellen Sie den Cron-Job in einem gewünschten Intervall ein und führen Sie das Skript aus.
Dies ist nicht genau das, wonach Sie suchen, aber vielleicht können Sie es mithilfe dieser Referenz an Ihre Bedürfnisse anpassen (siehe "Pro-Prozess-Speichernutzung").
Ich habe nicht näher darauf eingegangen, aber collectl bietet eine Option zum Generieren von durch Trennzeichen getrennten Ausgaben. Im Fall von Gnuplot generieren Sie also einfach Ihre Daten mit Leerzeichen und fertig. Es wird sogar gut in Excel geladen. Wenn Sie Kommas wünschen, können Sie das Trennzeichen ändern und wenn Sie die rrd-Route wirklich durchführen möchten (seien Sie nur vorsichtig, da die Diagramme nicht unbedingt mit den Daten übereinstimmen!), Können Sie das Trennzeichen in Doppelpunkte und sogar die Zeitstempel in UTC ändern. -Kennzeichen
kSar, basierend auf sar-Daten, aber es basiert auf Java, ist also mehr oder weniger plattformunabhängig und ermöglicht es Ihnen, ssh zu einem Remote-Host zu senden, um die Daten abzurufen.
Mir fällt nichts von der Stange ein
Eine Kombination aus einem PHP-Skript, das ps -AH v | ausführt awk '{print $ 8, $ 9, $ 10}' und die Verwendung mit pChart könnte Ihnen eine Webseite geben, die das tut, wonach Sie suchen? (Verwendung in KB, Prozentsatz des Gesamt- und Prozessnamens)
quelle
Schauen Sie sich sarface an - es hängt von den sar-Daten ab und Sie können Ihre Speichernutzung (und alle anderen sar / sysstat-Daten) live überwachen.
quelle
und was ist mit sammeln ?
quelle
Mach es selbst. Erstellen Sie ein einfaches Shell-Skript zum Aktualisieren der RRD-Datenbank. Zeichnen Sie dann mit rrdtool einen Graphen.
quelle
Vergessen Sie nicht das Sammeln, wenn Sie sich wirklich für niedrigere Detailstufen interessieren. Im Folgenden finden Sie ein Beispiel für die Arten der Speicherauslastung pro Prozess, die gemeldet werden kann:
Wenn Sie an bestimmten Prozessen interessiert sind, können Sie geeignete Filter angeben (einschließlich eines Schalters zum Anzeigen von Threads).
Und wenn Sie sich allgemein für Speicher interessieren, können Sie auch Plattendetails anzeigen und es wird sogar ein vmstat-Format ausgegeben. Warum sollten Sie Daten im vmstat-Format anzeigen, wenn das vorhandene Tool dies bereits tut? Das ist ganz einfach - mit collectly können Sie Statistiken zu einer Datei protokollieren und diese später in verschiedenen Formaten wiedergeben.
Probieren Sie es aus, es wird Ihnen gefallen
quelle
Wenn Sie Speicher-Snapshots in verschiedenen Zeitintervallen erstellen möchten ... stellen Sie den Cron-Job in einem gewünschten Intervall ein und führen Sie das Skript aus.
Ich hoffe, das hilft....
quelle
Dies ist nicht genau das, wonach Sie suchen, aber vielleicht können Sie es mithilfe dieser Referenz an Ihre Bedürfnisse anpassen (siehe "Pro-Prozess-Speichernutzung").
quelle
Hmm, die Gnuplot- FAQ sagt, dass sie keine Tortendiagramme unterstützt , aber sie schlagen Bernhard Reiters Tortendiagramm vor .
quelle
Sie können #top oder #sysstat verwenden
quelle
Ich habe nicht näher darauf eingegangen, aber collectl bietet eine Option zum Generieren von durch Trennzeichen getrennten Ausgaben. Im Fall von Gnuplot generieren Sie also einfach Ihre Daten mit Leerzeichen und fertig. Es wird sogar gut in Excel geladen. Wenn Sie Kommas wünschen, können Sie das Trennzeichen ändern und wenn Sie die rrd-Route wirklich durchführen möchten (seien Sie nur vorsichtig, da die Diagramme nicht unbedingt mit den Daten übereinstimmen!), Können Sie das Trennzeichen in Doppelpunkte und sogar die Zeitstempel in UTC ändern. -Kennzeichen
quelle
kSar, basierend auf sar-Daten, aber es basiert auf Java, ist also mehr oder weniger plattformunabhängig und ermöglicht es Ihnen, ssh zu einem Remote-Host zu senden, um die Daten abzurufen.
http://ksar.atomique.net/
quelle
Gibt Ihnen phpsysinfo nicht die Möglichkeit, Prozessinformationen auf irgendeine Weise anzuzeigen ?
quelle