2008-11-12 17 views
8

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

Da ich das Problem nicht selbst reproduzieren konnte, würde ich gerne ein Dienstprogramm finden, das mich per E-Mail benachrichtigt, wenn die CPU-Auslastung zu steigen beginnt, so dass ich auf den Server hüpfen kann, um FusionReactor zu sehen was passiert, und identifizieren Sie den fehlerhaften Code.

Ich habe gegoogelt und habe es nicht gelungen, ein geeignetes Programm zu finden, so dass ich dachte, ich würde fragen, ob andere Programmierer ein Tool gefunden, das diese Art der Überwachung tun. Angesichts der Besonderheiten meiner Bedürfnisse würde ich lieber kein eigenes Überwachungswerkzeug schreiben.

Wenn Sie andere Vorschläge haben das Gesamtproblem für die Annäherung an, ich würde gerne auch solche hören.

Antworten auf Antworten:

Verwenden von Windows perfmon ein Kommandozeilen klingt vielversprechend auszulösen. Kann mir jemand auf ein Tutorial hinweisen, wie das geht?

Wir haben kein Überwachungssystem, das für den Empfang von SNMP-Traps eingerichtet ist.

Wir laufen Coldfusion 8 Standard Edition, die nicht die Coldfusion-Leistungsüberwachung enthält tools-- nur Unternehmen diejenigen einschließt. Die Antwort von Peter Boughton 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 anzusteigen, also suche ich immer noch nach einer Benachrichtigungslösung.

Antwort

4

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

http://www.coretechnologies.com/products/AlwaysUp/

Monitore jeder Prozess durch eine beliebige Kombination von:

  • Speicher useage
  • Cpu Nutzungs
  • Unresponsiveness
  • Führen Sie ein benutzerdefiniertes Skript, um zu bestimmen, ob es
  • zurückgesetzt werden sollte

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 kommen dem Problem auf den Grund.

+0

Danke, das klingt nach dem, wonach ich suche, um dieses hartnäckige, aber gelegentliche Problem zu lösen. – davidcl

+0

Kein Problem. Ich hasse Hack-Jobs, aber das hat auch ein Problem für mich gelöst. Wenn es sich jemals zu einem größeren Problem macht, werde ich ihm die Aufmerksamkeit schenken, die es verdient. –

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 wird und Sie auf diese Weise benachrichtigt. Es kann auch einen Befehl ausführen oder eine Vielzahl anderer nützlicher Dinge ausführen, die Ihnen helfen könnten, es zu finden.

+0

Können Sie mehr Details darüber geben, wie perfmon einen Befehl ausführt? Ich denke, das würde meine Bedürfnisse erfüllen. – davidcl

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 der Server viele überwachen - es ist ein großartiges Werkzeug ist, obwohl ich nicht die Warnungen verwendet haben, auch selbst viel sie wohl wert sind ein Blick in, wie sie einfach zu installieren aussehen.

Wie für die allgemeine Ansätze ...

In unserem Unternehmen setzen wir Windows-Perfmon von einem Server alle Server unsere CF alle 30 Sekunden abzufragen einige Kennzahlen wie Gesamt CPU und 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 dann, einmal am Tag, bekommen wir einen Bericht über alle Metriken Server an unsere Tech-Abteilung geschickt, der die CPU und durchschnittliche Antwortzeit für alle unsere Server Graphen.

Wir finden dies eine gute Möglichkeit ist die Serverleistung in den Entwickler conciousness und Spot-Trends (wie schlechte CPU-Auslastung) früh zu halten. 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.

1

Sie benötigen diese Benachrichtigung nicht unbedingt, da FusionReactor über Protokolldateien verfügt, so dass Sie diese nach dem Ereignis überprüfen und die Skripts identifizieren können, die zu diesem Zeitpunkt 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 nicht wissen kann, was die Namen jetzt sind, aber ein Stöbern über Die Protokolle und Sie sollten die relevanten Informationen finden.

+0

Guter Punkt. Möglicherweise muss ich die Protokollierung von FR etwas erweitern, um sicherzustellen, dass die Anforderungsprotokolle lange genug beibehalten werden, um sie den Ressourcenprotokollen zuzuordnen, aber das ist ein ausgezeichneter Punkt. – davidcl