Windows-CPU-Benachrichtigung wegen fehlerhafter ColdFusion-Anwendung

8

Ich habe eine in ColdFusion geschriebene Webanwendung, die regelmäßig 100% der CPU des Servers verwendet und den ColdFusion-Dienst abstürzt.

Da ich das Problem nicht selbst reproduzieren konnte, würde ich gerne ein Dienstprogramm finden, das mich per E-Mail benachrichtigen wird, wenn die CPU-Auslastung steigt, also kann ich auf den Server springen und FusionReactor anschauen, um zu sehen, was ist gehen Sie weiter und identifizieren Sie den fehlerhaften Code.

Ich habe gegoogelt und konnte kein geeignetes Dienstprogramm finden, also dachte ich, ich würde fragen, ob andere Programmierer ein Werkzeug gefunden haben, das diese Art von Überwachung durchführen kann. Angesichts der Besonderheiten meiner Bedürfnisse würde ich lieber kein eigenes Überwachungswerkzeug schreiben.

Wenn Sie andere Vorschläge haben, um sich dem Gesamtproblem zu nähern, würde ich gerne diese auch hören.

Antworten auf Antworten:

Die Verwendung von Windows perfmon zum Auslösen einer Befehlszeile klingt vielversprechend. Kann mir jemand auf ein Tutorial hinweisen, wie man das macht?

Wir haben kein Überwachungssystem, das SNMP-Traps empfängt.

Wir führen ColdFusion 8 Standard Edition aus, die die ColdFusion-Leistungsüberwachungstools nicht enthält - nur Enterprise enthält diese.

Peter Boughtons Antwort wird es mir wahrscheinlich ermöglichen, das Problem zu lösen, aber es hilft mir nicht, das Problem proaktiv anzugehen, da die CPU anfängt, hochzufahren, also suche ich immer noch nach einer Benachrichtigungslösung.

    
davidcl 12.11.2008, 01:24
quelle

4 Antworten

4

Ich hatte vor ein paar Wochen ein ähnliches Problem und wurde auf ein Programm namens AlwaysUp verwiesen.

Ссылка

Überwacht jeden Prozess mit einer beliebigen Kombination aus:

  • Speicherverbrauch
  • CPU-Nutzung
  • Unreaktivität
  • Führen Sie ein benutzerdefiniertes Skript aus, um festzustellen, ob es zurückgesetzt werden soll

Von hier aus können Sie entweder den Dienst neu starten oder Benachrichtigungs-E-Mails senden oder ein Skript ausführen, um Dinge zu protokollieren usw.

Sie haben eine 30-Tage-Demo, ich wurde am 2. Tag verkauft. Eine gute schnelle Lösung, während Sie dem Problem auf den Grund gehen.

    
Jas Panesar 14.11.2008, 05:11
quelle
2

Unter Windows können Sie die Leistungs- und Überwachungstools (Perfmon) verwenden, die standardmäßig in Windows enthalten sind. Wenn die CPU einen bestimmten Punkt erreicht, kann ein SNMP-Hinweis ausgelöst werden, der von den meisten Systemüberwachungstools erkannt werden kann und Sie auf diese Weise warnt. Es kann auch einen Befehl ausführen oder eine Vielzahl anderer nützlicher Dinge ausführen, die Ihnen helfen könnten, es zu finden.

    
Justin 12.11.2008 02:07
quelle
1

Eine andere Alternative steht Ihnen zur Verfügung, wenn Sie Coldfusion 8 - den Leistungsmonitor - betreiben. Sie können Benachrichtigungen einrichten, um Ihnen eine E-Mail zu senden, einen anderen CFC usw. für verschiedene Kriterien anzurufen.

Ich benutze den Servermonitor viel - es ist ein großartiges Werkzeug, obwohl ich die Warnungen selbst nicht zu sehr benutzt habe, sie sind wahrscheinlich einen Blick wert, da sie einfach zu installieren sind.

Wie für allgemeine Ansätze ...

In unserem Unternehmen verwenden wir Windows Perfmon von einem Server, um alle unsere CF-Server alle 30 Sekunden abzufragen, um einige Messwerte wie die Gesamt-CPU und die durchschnittliche Antwortzeit zu erhalten. Wir protokollieren dies in einer CSV-Datei. Alle paar Minuten wird eine geplante Aufgabe ausgeführt, die die Details dieser Dateien liest und in einer DB-Tabelle speichert. Es schneidet dann die Dateien ab, damit sie nicht zu groß werden.

Schließlich erhalten wir einmal am Tag einen Bericht mit allen Server-Metriken an unsere Technikabteilung, der die CPU und die durchschnittliche Antwortzeit für alle unsere Server grafisch darstellt.

Wir finden, dass dies eine großartige Möglichkeit ist, die Serverleistung im Entwicklerbewusstsein zu halten und Trends (z. B. schlechte CPU-Auslastung) frühzeitig zu erkennen. Wir haben festgestellt, dass es sehr effektiv ist, weil Sie nicht wissen können, ob Ihre Leistung schlecht ist, bis Sie mit der Messung Ihrer Messwerte beginnen.

    
Ciaran Archer 12.11.2008 09:50
quelle
1

Sie brauchen diese Benachrichtigung nicht unbedingt, wie es gerade passiert - FusionReactor verfügt über Protokolldateien, so dass Sie diese überprüfen können, nachdem sie stattgefunden haben, und die Skripts identifizieren, die zu der Zeit ausgeführt werden.

Und wenn Sie nicht sicher sind, wann es passiert, bin ich ziemlich sicher, dass eines der Protokolle Speicher- und CPU-Auslastung enthält - obwohl ich mich nicht erinnern kann, was die Namen gerade sind, aber in der Protokolle und Sie sollten die relevanten Informationen finden.

    
Peter Boughton 12.11.2008 23:49
quelle