Pregunta

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 ColdFusion.

Dado que no he podido reproducir el problema por mí mismo, me gustaría encontrar una utilidad que me notifique por correo electrónico cuando el uso de la CPU comience a aumentar, para poder subir al servidor, mirar FusionReactor para ver qué hay continuar e identificar el código de comportamiento incorrecto.

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. Dados 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.

Respuestas a respuestas:

Usar Windows perfmon para activar una línea de comando suena prometedor. ¿Alguien puede señalarme un tutorial sobre cómo hacer eso?

No tenemos un sistema de monitoreo configurado para recibir trampas SNMP.

Estamos ejecutando ColdFusion 8 Standard Edition, que no incluye las herramientas de monitoreo de rendimiento ColdFusion, solo Enterprise las incluye.

La respuesta de Peter Boughton probablemente me permitirá resolver el problema, pero no me ayuda a abordar el problema de manera proactiva a medida que la CPU comienza a aumentar, por lo que todavía estoy buscando una solución de notificación.

¿Fue útil?

Solución

Tuve un problema similar hace unas semanas y fui dirigido a un programa llamado AlwaysUp.

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

Supervisa cualquier proceso mediante cualquier combinación de:

  • Uso de memoria
  • Uso de la CPU
  • Falta de respuesta
  • Ejecute un script personalizado para determinar si debe restablecerse

Desde aquí puede reiniciar el servicio, 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.

Otros consejos

En Windows, puede usar las herramientas de rendimiento y monitoreo (perfmon) que vienen de manera estándar con Windows. Cuando la CPU alcanza un cierto punto, puede activar un aviso SNMP que puede ser recogido por la mayoría de las herramientas de monitoreo del sistema y alertarlo de esa manera. También puede ejecutar un comando o hacer una variedad de otras cosas útiles que podrían ayudarlo a concretarlo.

Hay otra alternativa 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 demasiado las alertas, probablemente valga la pena examinarlas, ya que parecen fáciles de configurar.

En cuanto a los enfoques generales ...

En nuestra empresa, utilizamos Windows Perfmon de un servidor para sondear todos nuestros servidores CF cada 30 segundos para obtener algunas métricas, como la CPU total y el tiempo de respuesta promedio. 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 de base de datos. Luego trunca los archivos para que no crezcan demasiado.

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

Encontramos que esta es una excelente manera de mantener el rendimiento del servidor en la conciencia del desarrollador y detectar las tendencias (como la utilización deficiente de la CPU) de manera temprana. Lo hemos encontrado muy efectivo porque no puede saber si se está desempeñando mal hasta que comienza a medir sus métricas.

No necesariamente necesita esta notificación como sucede: FusionReactor tiene archivos de registro, por lo que puede verificarlos después de que haya sucedido 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 puedo recordar cuáles son los nombres en este momento, pero tengo algo en cuenta. registros y debe encontrar la información relevante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top