2008-11-12 8 views
8

J'ai une application Web, écrite en ColdFusion, qui démarre périodiquement en utilisant 100% du processeur du serveur et bloque le service ColdFusion. Comme je n'ai pas réussi à reproduire le problème moi-même, je voudrais trouver un utilitaire qui me notifiera par e-mail lorsque l'utilisation du processeur commencera à grimper, donc je peux sauter sur le serveur, regardez FusionReactor pour voir ce qui se passe, et identifier le code se conduisant mal. J'ai cherché Google et j'ai été incapable de trouver un utilitaire approprié, donc j'ai pensé que je demanderais si d'autres programmeurs ont trouvé un outil qui peut faire ce genre de surveillance. Compte tenu des spécificités de mes besoins, je préférerais ne pas écrire mon propre outil de surveillance.Notification de la CPU Windows pour une mauvaise application de l'application ColdFusion

Si vous avez d'autres suggestions pour aborder le problème global, j'aimerais les entendre aussi.

Les réponses aux réponses:

Utilisation de Windows perfmon pour déclencher une ligne de commande semble prometteur. Quelqu'un peut-il me diriger vers un tutoriel sur la façon de faire cela?

Nous n'avons pas de système de surveillance configuré pour recevoir les interruptions SNMP.

Nous utilisons ColdFusion 8 Standard Edition, qui n'inclut pas les outils de surveillance des performances de ColdFusion - seuls Enterprise les inclut.

La réponse de Peter Boughton va probablement me permettre de résoudre le problème, mais cela ne m'aide pas à résoudre le problème de manière proactive lorsque la CPU commence à pointer, donc je suis toujours à la recherche d'une solution de notification.

Répondre

4

J'ai eu un problème similaire il y a quelques semaines et j'ai été dirigé vers un programme appelé AlwaysUp.

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

contrôle tous les processus par toute combinaison de:

  • mémoire useage
  • Cpu Usage
  • non-réponse
  • Exécuter un script personnalisé pour déterminer si elle doit être remis à zéro

De là, vous pouvez soit redémarrer le service, soit envoyer des courriels de notification, ou exécuter un script pour enregistrer les choses, etc

Ils ont une démo de 30 jours, j'ai été vendu le 2ème jour .. Une bonne solution rapide tout vous arrivez au fond de la question.

+0

Merci, cela ressemble à ce que je cherche pour résoudre ce problème persistant mais occasionnel. – davidcl

+0

Aucun problème. Je déteste hacker des travaux mais cela a résolu un problème pour moi aussi. Si jamais cela devient un gros problème, je lui donnerai l'attention qu'il mérite. –

2

Sous Windows, vous pouvez utiliser les outils de performance et de surveillance (perfmon) fournis avec Windows. Lorsque la CPU atteint un certain point, elle peut déclencher une notification SNMP qui peut être détectée par la plupart des outils de surveillance du système et vous alerter de cette façon. Il peut également exécuter une commande ou faire une variété d'autres choses utiles qui pourraient vous aider à le clouer.

+0

Pouvez-vous donner plus de détails sur le fait que perfmon lance une commande? Je pense que cela répondrait à mes besoins. – davidcl

1

Une autre alternative est disponible si vous utilisez Coldfusion 8 - le moniteur de performances. Vous pouvez configurer des alertes pour vous envoyer un e-mail, appeler un autre CFC, etc. pour différents critères.

J'utilise énormément le serveur de surveillance - c'est un outil formidable même si je n'ai pas trop utilisé les alertes, elles méritent probablement d'être examinées car elles sont faciles à installer.

En ce qui concerne les approches globales ...

Dans notre société, nous utilisons Perfmon de Windows d'un serveur à interroger tous nos serveurs FC toutes les 30 secondes pour obtenir des mesures telles que le processeur totale et le temps de réponse moyen. Nous enregistrons ceci dans un fichier CSV. Toutes les quelques minutes une tâche planifiée s'exécute qui lit le détail de ces fichiers et les enregistre dans une table DB. Il tronque ensuite les fichiers afin qu'ils ne deviennent pas trop gros. Enfin, une fois par jour, nous envoyons à notre service technique un rapport détaillant toutes les métriques du serveur qui représente graphiquement le processeur et le temps de réponse moyen de tous nos serveurs. Nous trouvons que c'est une excellente façon de garder les performances du serveur dans la conscience du développeur et de repérer les tendances (telles que la mauvaise utilisation du processeur) au début. Nous l'avons trouvé très efficace parce que vous ne pouvez pas savoir si vous avez de mauvaises performances avant de commencer à mesurer vos statistiques.

1

Vous n'avez pas forcément besoin de cette notification en l'occurrence: FusionReactor possède des fichiers journaux, ce qui vous permet de les vérifier après l'événement et d'identifier les scripts en cours d'exécution. Et si vous n'êtes pas sûr de ce qui se passe, je suis à peu près sûr que l'un des journaux contient de la mémoire et de l'utilisation du processeur - bien que je ne me souvienne pas de ce que sont les noms en ce moment les journaux et vous devriez trouver les informations pertinentes.

+0

Bon point. Il se peut que je doive étendre un peu la journalisation de FR pour m'assurer que les journaux de demande sont conservés assez longtemps pour les corréler aux journaux de ressources, mais c'est un excellent point. – davidcl

Questions connexes