5 votos

Cómo detectar la congelación de las máquinas virtuales

En las plataformas en la nube se oye a menudo que, debido a la alta carga de las máquinas virtuales vecinas, los discos sobre la ethernet sobredimensionada, las copias de seguridad o la migración en vivo a otro hardware, la máquina virtual puede "congelarse" por un momento.

Tengo la sospecha de que esto le ocurre a una de nuestras máquinas virtuales de Ubuntu en un proveedor de Cloud que no quiero avergonzar públicamente.

Todas las noches no está disponible para los servicios de vigilancia externos. La máquina en sí parece saludable en términos de carga, tráfico, etc. Sin embargo, el proveedor sugiere que la red está bien.

Me gustaría poder (des)probar que las congelaciones de VM son la causa de estos localizadores.

Una idea que tuve fue la de escribir la fecha en un registro cada segundo, y tras un breve momento de indisponibilidad ver si nos saltábamos un "latido".
Sin embargo, eso parece defectuoso porque qué pasa si la VM mantiene su propio reloj y permite una deriva del hardware del Host.
Si nuestro reloj interno se congela junto con la VM, todavía tendríamos una bonita secuencia de segundos en ese archivo de registro, y un reloj que ahora está atrasado con respecto al tiempo real.

¿Existe una mejor manera/herramienta que pueda utilizar para determinar que hay congelaciones de la máquina?

Supongo que el tiempo real y nuestro tiempo serían una indicación, pero también hay otras causas de desviación de los relojes.

0 votos

Si no ves un problema en las métricas que estás recogiendo, entonces o estás recogiendo las métricas equivocadas o las alertas son incorrectas.

2 votos

Entonces, ¿cuál sería la métrica correcta para detectar una congelación de la máquina virtual?

0 votos

Ni idea, viejo amigo, también puede haber posibilidades, pero parece que estás en posesión de información sobre lo que no es, así que empieza a controlar otras cosas.

1voto

vrtigo1 Puntos 671

Creo que estás en el camino correcto en lo que respecta a escribir la hora en un archivo de registro cada segundo, pero por las razones que has señalado que puede no ser fiable. Además de escribir la hora en un disco local, ¿por qué no hacer que su proceso cron llegue a un sistema estable conocido a través de la red y que ese sistema registre la solicitud en el disco? Algo tan simple como wget podría funcionar asumiendo que estás haciendo una petición http a un sistema y que ese sistema está registrando las peticiones. Por supuesto, lo ideal sería tener el sistema de destino relativamente "cerca" del sistema que se sospecha que es problemático en cuanto a la red, pero eso podría ayudar a obtener algunos datos de depuración al menos.

0voto

Alonimus Puntos 24

Puedes utilizar Nagios, una solución informática para la monitorización. Con esto, usted podría comprobar el Carga de la CPU (y muchas otras cosas), y recibir una alerta a tu correo o por la consola web. Tienes que instalar el servidor en tu PC y el ejecutor del plugin remoto en la máquina virtual.

Aquí tienes un tutorial muy chulo: http://www.tecmint.com/how-to-add-linux-host-to-nagios-monitoring-server/

0 votos

Cuando otras máquinas virtuales tienen una alta carga y roban recursos, no se mostrará en nuestros gráficos. Sin embargo, obtenemos los tiempos de espera de la monitorización externa como Pingdom. Así que la pregunta es, ¿hay una manera de demostrar a mi proveedor de la nube que las máquinas se congelan son la causa de esto (frente a una red defectuosa, etc.)? Creo que habría una manera, ya que en relación con el tiempo real, no pasó nada en el servidor. ¿Sería suficiente un salto repentino en el tiempo? ¿Sólo funcionaría si la máquina virtual sincroniza su reloj con el del servidor? ¿Sería una prueba suficiente ya que podría haber otros factores que causaran un salto en el tiempo?

0voto

Alexis Lê-Quôc Puntos 294

Yo haría ping a una VM desde un host externo. Si la VM se congela, su pila de red debería también y debería mostrarse en una secuencia de pings registrados.

0 votos

Es una buena idea, pero esto no descarta una red defectuosa.

0 votos

@kvz Si el problema sólo afecta a una de tus máquinas virtuales, entonces hacer el mismo registro también con otras máquinas virtuales podría proporcionar la evidencia adicional necesaria si es la red o no (a menos que se sospeche de una red virtual defectuosa dentro de la nube). También comparar los resultados de VM a VM y de host externo a VM podría dar alguna idea. Sin embargo, es difícil imaginar una forma de probar de forma concluyente cualquier cosa dentro de un contenedor en el que no se pueda confiar.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: