2008-11-12 3 views
8

Tengo una aplicación web, escrita en ColdFusion, que periódicamente comienza a usar el 100% de la CPU del servidor y bloquea el servicio de ColdFusion.Notificación de CPU de Windows por una aplicación incorrecta de ColdFusion

Como no he podido reproducir el problema yo mismo, me gustaría encontrar una utilidad que me avise por correo electrónico cuando el uso de la CPU comience a subir, así que puedo saltar al servidor, mirar FusionReactor para ver lo que está sucediendo, e identificar el código que se porta mal.

He buscado en Google y no he podido encontrar una utilidad adecuada, así que pensé en preguntar si otros programadores han encontrado una herramienta que pueda hacer este tipo de monitoreo. Dado los detalles de mis necesidades, preferiría no escribir mi propia herramienta de monitoreo.

Si tiene otras sugerencias para abordar el problema general, me encantaría escucharlas también.

Las respuestas a las respuestas:

Uso de Windows Monitor de rendimiento para desencadenar una línea de comandos suena prometedor. ¿Alguien puede indicarme un tutorial sobre cómo hacer eso?

No tenemos un sistema de supervisión configurado para recibir capturas SNMP.

Estamos ejecutando ColdFusion 8 Standard Edition, que no incluye las herramientas de supervisión del rendimiento de ColdFusion, solo Enterprise incluye esas.

La respuesta de Peter Boughton probablemente me permita resolver el problema, pero no me ayuda a resolver el problema proactivamente cuando la CPU comienza a dispararse, por lo que todavía estoy buscando una solución de notificación.

Respuesta

4

Tuve un problema similar hace unas semanas y me enviaron a un programa llamado AlwaysUp.

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

Monitores cualquier proceso mediante cualquier combinación de:

  • useage de memoria
  • uso de la CPU
  • Falta de respuesta
  • Ejecutar un script personalizado para determinar si se debe restablecer

Desde aquí puede reiniciar el servicio o enviar correos electrónicos de notificación, o ejecutar un script para registrar cosas, etc.

Tienen una demostración de 30 días, me vendieron el segundo día .. Una buena solución rápida mientras llegas al fondo del problema

+0

Gracias, eso suena como lo que estoy buscando para resolver este problema persistente pero ocasional. – davidcl

+0

No hay problema. Odio hackear trabajos, pero esto también me solucionó un problema. Si alguna vez se convierte en un problema mayor, le prestaré la atención que merece. –

2

En Windows, puede usar las herramientas de rendimiento y supervisión (perfmon) que vienen de serie con Windows. Cuando la CPU llega a cierto punto, puede activar un aviso de SNMP que la mayoría de las herramientas de supervisión del sistema pueden detectar y alertarlo de esa manera. También puede ejecutar un comando o hacer una variedad de otras cosas útiles que pueden ayudarlo a atraparlo.

+0

¿Puede dar más detalles sobre cómo ejecutar perfmon un comando? Creo que eso satisfaría mis necesidades. – davidcl

1

Otra alternativa está disponible si está ejecutando Coldfusion 8: el monitor de rendimiento. Puede configurar alertas para enviarle un correo electrónico, llamar a otro CFC, etc. para diferentes criterios.

Utilizo mucho el monitor del servidor: es una gran herramienta, aunque no he usado las alertas demasiado, probablemente valgan la pena examinarlas, ya que parecen fáciles de instalar.

En cuanto a los enfoques generales ...

En nuestra empresa utiliza Windows Monitor de rendimiento de un servidor a sondear todos nuestros servidores CF cada 30 segundos para obtener algunos datos como el total de la CPU y el tiempo medio de respuesta. Registramos esto en un archivo CSV. Cada pocos minutos se ejecuta una tarea programada que lee los detalles de estos archivos y los guarda en una tabla DB. Luego trunca los archivos para que no sean demasiado grandes.

Finalmente, una vez al día, recibimos un informe que detalla todas las métricas del servidor para nuestro departamento de tecnología que grafica la CPU y el tiempo promedio de respuesta para todos nuestros servidores.

Creemos que esta es una gran manera de mantener el rendimiento del servidor en la conciencia del desarrollador y detectar las tendencias (como la mala utilización de la CPU) antes. Lo hemos encontrado muy efectivo porque no puede saber si está funcionando mal hasta que comience a medir sus métricas.

1

No necesariamente necesita esta notificación, ya que ocurre: FusionReactor tiene archivos de registro, por lo que puede verificarlos luego de que ocurrieron e identificar los scripts que se ejecutan en ese momento.

Y si no está seguro de cuándo está sucediendo, estoy bastante seguro de que uno de los registros contiene memoria y uso de la CPU, aunque no recuerdo cuáles son los nombres en este momento, pero tengo un poke en los registros y usted debe encontrar la información relevante.

+0

Buen punto. Es posible que necesite expandir un poco el registro de FR para asegurarme de que los registros de solicitud se conservan el tiempo suficiente para correlacionarlos con los registros de recursos, pero ese es un punto excelente. – davidcl

Cuestiones relacionadas