Ich suche nach einer Möglichkeit, Probleme wie Swap-Tod zu diagnostizieren, bei denen ein Speicherausgleich den Swap auffüllt und die gesamte Maschine (wie Apache) tötet.
Ich verwende bereits Kakteen und kann Nagios (obwohl ich es lieber nicht möchte) oder Munin einrichten, aber soweit ich das beurteilen kann, können sie nicht die individuelle Programmnutzung aufzeichnen - nur den Gesamtstatus.
Ich weiß, dass ich alle 30s ein Skript erstellen kann, das auf eine Datei >> verweist, aber ich würde gerne sehen, ob es bereits eine ausgereifte Lösung gibt.
Idealerweise wäre es wieder:
- Speicherverbrauch der Prozesse alle N Sekunden aufzeichnen
- Zeichnen Sie die CPU-Auslastung der Prozesse alle N Sekunden auf
- Support-Charts und Geschichte
- Support-Durchschnittswerte - so wie mysqld am letzten Tag 43% der CPU verbraucht hat und durchschnittlich 400 MB Arbeitsspeicher hat
- Sei frei und Open Source
Prozessnamen sind und sollten nicht im Voraus bekannt sein - die Idee ist, sie nur überwachen zu lassen und dann einen Blick auf die Top-Täter zu werfen.
Mein System ist Linux (OpenSUSE).
quelle
Antworten:
Wenn Sie nur die besten Straftäter haben möchten, sollten Sie in Betracht ziehen,
top
im Batch-Modus mit einem relativ langen Intervall (60 Sekunden plus) zu arbeiten. Möglicherweise müssen Sie mehr als einetop
Ausführung ausführen, um die Top-Täter auf mehreren Ressourcen zu erfassen. Ich habe Systeme so konfiguriert,top
dass sie einige Zyklen lang ausgeführt werden, wenn eine Ressource überlastet war.Ziehen Sie
sar
in Betracht, im Stapelmodus zu arbeiten, 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.munin
Benachrichtigungen ausführen und aktivieren. Dies kann Ihnen die Möglichkeit geben, in den Server einzusteigen und zu beobachten, wie dieser ausfällt. Möglicherweise können Sie das Problem beheben, bevor es nicht mehr funktioniert.Bei Speicherverlusten weist ein stetiger Anstieg der Auslagerungsnutzung auf ein Problem hin. Ich habe einmal beobachtet, wie ein Server über einen Zeitraum von Tagen langsam starb. Der Problemdienst war ein Programm, das andere Prozesse auf Speicherverluste überwacht. Der Systemadministrator beharrte darauf, dass die zunehmende Auslagerungsnutzung kein Problem war, bis der Server nicht mehr reagierte.
Möglicherweise können Sie
cfengine
mithilfe der Anomalieerkennung ein Skript auslösen, um den Systemstatus zu erfassen, wenn Probleme auftreten. Möglicherweise möchten Sie neben den Prozessen mit den meisten Ressourcen auch viele andere Informationen. Für einen plötzlichen Nutzungsanstieg möchten Sie möglicherweise eine Liste der Netzwerkverbindungen (nach Adresse, nicht nach Name). Die Speichernutzung ist ebenfalls nützlich.quelle
sysstat ist so ziemlich genau für Ihre Zwecke gemacht.
quelle
Ich habe oben verwendet, bevor:
http://freshmeat.net/projects/atop/
"Atop ist ein ASCII-Vollbild-Leistungsmonitor, der in der Lage ist, die Aktivität aller Prozesse (auch wenn die Prozesse während des Intervalls beendet wurden) sowie die tägliche Protokollierung der System- und Prozessaktivität für die Langzeitanalyse zu protokollieren und überlastete Systemressourcen mithilfe von hervorzuheben 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, das Speicherwachstum, die Priorität, den Benutzernamen, den Status, und Exit-Code. "
quelle
atop -r log_filename
, indem Sie auf drückenm
, um zur Ansicht für die prozessbezogene Speichernutzung zu wechseln, und dann auf drückent
, um in Schritten von 10 Minuten bis 3:40 vorwärts zu gehen. Weitere Informationen zu den Grundlagen der Verwendung von atop finden Sie unter lwn.net/Articles/387202. Ein Beispiel zum Erkennen eines Speicherverlusts finden Sie unter atoptool.nl/download/case_leakage.pdfHaben Sie versucht, gesammelt?
Es ist sehr leistungsfähig und anpassbar.
Hat viele Plugins und könnte mit Nagios integriert werden.
http://collectd.org/features.shtml
quelle
top
.Centreon auf Nagios, Nagios in Verbindung mit NRPE. Sie können dann benutzerdefinierte Skripte schreiben, um Daten in JEDEM gewünschten Format an NRPE zu melden. Nagios fragt dann die Daten von Remote-Servern mit NRPE ab, und Centreon erstellt ein hübsches Diagramm und erhöht die Flexibilität der Benutzer erheblich. Wir verwenden es über http://beyondhosting.net Ich habe bereits eine VZ Container Vorlage mit Centreon + Nagios Setup, wenn Sie es wollen.
Graphs Centeron erstellt hostthenpost.org/tyler/2010-07-23_1719.png
quelle
nmon ist ein großartiges Tool, das genau das tut, wonach Sie suchen. Entwickelt für AIX und Linux. Produziert eine Tonne detaillierter Ausgaben und kann einfach in Berichte eingefügt werden. Wenn Sie es googeln, gibt es ein IBM-Wiki mit einer Reihe von Dokumentationen und zusätzlichen Hilfsprogrammen zum Parsen der Daten.
quelle
Server Density 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 ausgeführten Prozesse anzuzeigen. Sie nennen es Schnappschüsse .
Es verbessert sich ständig. Eine der neuesten Funktionen ist die Erkennung von Anomalien , mit der Sie Anomalien auf einfache Weise erkennen können. Sie können auch verschiedene Schwellenwerte einstellen
quelle
http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html
siehe oben link kleiner code der dir den speicher ausschaltet cpu etc.
quelle
Die vorgeschlagenen Antworten, als ich eine ähnliche Frage stellte :
Icapan sagte :
David Spillet sagte :
Sie können auch Nagios oder OpenNMS überprüfen .
quelle
Munin erledigt alles, was Sie benötigen, ohne Nagios oder ein anderes Tool zu benötigen. Für OpenSUSE stehen RPMs zur Verfügung.
quelle
Vielleicht macht das gute alte OProfile was du brauchst? Es ist ein kernelbasierter Profiler auf Systemebene mit nur ein paar Prozent Overhead.
Dann gibt es noch ein exzellentes Perl-Skript, PSMon , mit dem Sie alle Arten von CPU- / Speicherbeschränkungen einrichten können. Wenn diese überschritten werden, protokolliert psmon einen Fehler und / oder bricht den fehlerhaften Prozess ab.
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. :-)
quelle