it-swarm.com.de

Wie kann die Speicher- / CPU-Auslastung von Prozessen im Laufe der Zeit überwacht und protokolliert werden?

Ich suche nach einer Möglichkeit, Probleme wie den Swap-Tod zu diagnostizieren, bei denen ein Balooning-Speicherprozess den Swap ausfüllt und die gesamte Maschine (wie Apache) tötet.

Ich benutze bereits Kakteen und kann Nagios (obwohl ich es lieber nicht möchte) oder Munin einrichten, aber soweit ich das beurteilen kann, können sie die Nutzung einzelner Programme nicht aufzeichnen - nur den Gesamtstatus.

Ich weiß, dass ich alle 30 Sekunden ein Skript >> in eine Datei rollen kann, aber ich würde gerne sehen, ob bereits eine ausgereifte Lösung vorhanden ist.

Im Idealfall wäre es wieder:

  • zeichnen Sie die Speichernutzung der Prozesse alle N Sekunden auf
  • zeichnen Sie die CPU-Auslastung der Prozesse alle N Sekunden auf
  • support-Diagramme und Verlauf
  • unterstützungsdurchschnitte - wie mysqld am letzten Tag 43% CPU und durchschnittlich 400 MB Speicher verbraucht hat
  • sei frei und Open Source

Prozessnamen sind und sollten nicht im Voraus bekannt sein - die Idee ist, sie einfach überwachen zu lassen und dann einen Blick auf die Top-Täter zu werfen.

Mein System ist Linux (OpenSUSE).

32

Wenn Sie nur die Top-Täter wollen, sollten Sie top mit einem relativ langen Intervall (plus 60 Sekunden) im Batch-Modus ausführen. Möglicherweise benötigen Sie mehr als ein top, um die Top-Täter auf mehreren Ressourcen zu erfassen. Ich habe Systeme so konfiguriert, dass top für einige Zyklen ausgeführt wird, wenn eine Ressource überlastet wurde.

Erwägen Sie, sar im Stapelmodus auszuführen, um die Ressourcennutzung zu erfassen. Mir ist klar, dass dies serverbasiert ist, aber es ist nützlich, die Zeiten zu bestimmen, zu denen Probleme auftreten.

Führen Sie munin aus und aktivieren Sie Benachrichtigungen. Dies kann Ihnen die Möglichkeit geben, einzusteigen und zu beobachten, wie der Server ausfällt. Möglicherweise können Sie das Problem beheben, bevor es ausfällt.

Bei Speicherlecks weist ein stetiger Anstieg der Swap-Nutzung auf ein Problem hin. Ich habe einmal gesehen, wie ein Server über einen Zeitraum von Tagen langsam starb. Der Problemdienst war ein Programm, das andere Prozesse auf Speicherlecks überwacht. Der Systemadministrator bestand darauf, dass die zunehmende Swap-Nutzung kein Problem darstellte, bis der Server nicht mehr reagierte.

Möglicherweise stellen Sie fest, dass die Anomalieerkennung von cfengine verwendet werden kann, um ein Skript auszulösen, das den Systemstatus erfasst, wenn Probleme auftreten. Möglicherweise möchten Sie neben den Prozessen, die die meisten Ressourcen verwenden, viele Informationen. Für einen plötzlichen Nutzungsanstieg benötigen Sie möglicherweise eine Liste der Netzwerkverbindungen (nach Adresse und nicht nach Name). Die Speichernutzung ist ebenfalls nützlich.

16
BillThor

sysstat ist ziemlich genau für Ihren Zweck gemacht.

12

Ich habe oben schon verwendet:

http://freshmeat.net/projects/atop/

"Atop ist ein ASCII Vollbild-Leistungsmonitor, der in der Lage ist, die Aktivität aller Prozesse (auch wenn Prozesse während des Intervalls beendet wurden), die tägliche Protokollierung der System- und Prozessaktivität für lange Zeit zu melden. Begriffsanalyse, Hervorheben überlasteter Systemressourcen mithilfe von Farben usw. In regelmäßigen Abständen werden Aktivitäten auf Systemebene in Bezug auf CPU, Speicher, Swap, Festplatten und Netzwerkebenen sowie für jeden aktiven Prozess die CPU-Auslastung angezeigt Speicherwachstum, Priorität, Benutzername, Status und Exit-Code. "

9
NinjaCat

Haben Sie versucht zu sammeln?
Es ist sehr leistungsfähig und anpassbar.
Hat viele Plugins und könnte in Nagios integriert werden.

http://collectd.org/features.shtml

6
PiL

http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html

schauen Sie über dem Link nach, kleiner Code, der Ihnen Speicherplatz-CPU usw. auslöst.

2
Rajat

nmon ist ein großartiges Tool, das genau das tut, wonach Sie suchen. Entwickelt für AIX und Linux. Produziert eine Menge detaillierter Ausgaben und ist einfach in Berichte zu integrieren. Wenn Sie es googeln, gibt es ein IBM-Wiki mit einer Reihe von Dokumentationen und zusätzlichen Dienstprogrammen zum Parsen der Daten.

2
mattcaffeine

Die Antworten schlugen vor, als ich eine ähnliche Frage stellte:

Icapansagte :

Munin ist der einfachste Weg, um mit minimalem Aufwand bei der Installation und Konfiguration Betriebszeitdiagramme zu erhalten. Ich benutze atop auch für die aggregierte CPU-Nutzung durch einen Prozess, aber das ist nicht das, wonach Sie gefragt haben.

David Spilletsagte :

Ich benutze collectd , um die Systemlast unter einer Reihe anderer Parameter aufzuzeichnen. Es speichert die Daten in RRD Speichern, die mit den vielen verfügbaren Tools und Skripten grafisch dargestellt und auf andere Weise analysiert werden können. Ich verwende eine modifizierte Version von dieses Skript für meine grafische Darstellung ( Beispielausgabe ).

Collectd verfügt über Plugins zum Überwachen vieler Dinge (alles, was häufig verlangt wird, und ein paar Dinge darüber hinaus). Das Erstellen eigener Plugins sollte nicht schwierig sein, wenn Sie etwas Spezielles benötigen. Dies ist ein sehr flexibles Tool. Das Konfigurieren der Diagramme in rrd.cgi ist ein sehr manueller, wenn auch nicht schwieriger Vorgang, obwohl Sie möglicherweise ein praktischeres Tool für die Arbeit mit den von collectd verwalteten RRD-Dateien finden.

Sie können auch Nagios oder OpenNMS überprüfen.

2
warren

Serverdichte macht genau das, was Sie beschreiben.

Ich benutze es auf einem unserer Produktionsserver und freue mich sehr darüber. Die wichtigste Funktion ist die Möglichkeit, Diagramme anzuzeigen, auf einen Peak zu klicken und den aktuellen CPU-/Speicherverbrauch des Servers einschließlich aller laufenden Prozesse anzuzeigen. Sie nennen es Schnappschüsse .

Es verbessert sich ständig. Eine der neuesten Funktionen ist Anomalieerkennung , mit der Sie Anomalien leicht erkennen können. Sie können auch verschiedene Schwellenwerte festlegen

2
Aron Rotteveel

Centreon auf Nagios, Nagios gekoppelt mit NRPE. Sie können dann benutzerdefinierte Skripte schreiben, um Daten in einem beliebigen Format an NRPE zu melden. Nagios fragt dann die Daten von Remote-Servern mit NRPE ab, und Centreon erstellt ein hübsches Diagramm und bietet eine Menge Benutzerflexibilität. Wir verwenden es unter http://beyondhosting.net Ich habe bereits eine VZ-Container-Vorlage mit Centreon + Nagios-Setup, wenn Sie es möchten.

Graphs centreon erstellt hostthenpost.org/tyler/2010-07-23_1719.png

2
VisBits

Vielleicht macht das gute alte OProfile was Sie brauchen? Es ist ein kernelbasierter Profiler auf Systemebene mit nur geringem Aufwand (einige Prozent).

Dann gibt es ein exzellentes Perl-Skript, PSMon , mit dem Sie alle Arten von CPU-/Speicherlimits einrichten können. Wenn diese überschritten werden, protokolliert psmon einen Fehler und/oder beendet den fehlerhaften Prozess.

Letzterer würde Ihnen keine Profilerstellungsberichte erstellen, aber wenn er beschließt, denselben Prozess immer wieder abzubrechen, haben Sie wahrscheinlich den bösen Bastard gefunden, nach dem Sie gesucht haben. :-)

1

Munin erledigt alles, was Sie brauchen, ohne Nagios oder ein anderes Werkzeug. Für OpenSUSE sind RPMs verfügbar.

1
gareth_bowles