Wunala Dreaming

25 diciembre 2007

La insoportable levedad

Filed under: Trabajando — Patrick Ryan @ 21:36
Tags: , ,

Ya comenzaba a estar un poco preocupado. En su momento con un proyecto en la Navy decidí dejar de lado diferentes productos para hacer gráficas con Nagios y hacerme mi propia receta, el PatrickGraph, un poco de investigación y ahí tenía mi producto simple, robusto y eficaz para sacar gráficas majas de los servicios monitorizados.

Todo iba bien hasta que en producción se empiezan a ver cortes en las gráficas, y en lo primero que pienso es en un mal funcionamiento de mi pequeñajo, solo que de tan simple que es me da malas vibraciones que falle. Hay partes que todo y que les tengo fe que funcionen como un reloj suizo, tienen su nivel de complejidad y podrían fallar.

Hasta entonces la falta de tiempo había hecho que no pudiese prestarle mucha atención al problema, así que todo era cuestión de poder dedicarle un momentito e ir tirando del hilo. Afortunadamente, si una cosa hace el programa es dejar registro de todas las cosas que hace o intenta hacer, que así es más fácil seguirle el rastro. Así que me concentre en uno de los tests y miré en el log a ver que le había sucedido, y empecé a ver algo de luz, los tests se estaban realizando en un intervalo superior a los 10 minutos.

Con RRDTool cuando defines el almacenamiento para un dato le has de especificar en que intervalo actualizarás ese dato y cual es el tiempo de heartbeat, que es el tiempo máximo que ha de pasar entre dos adquisiciones de datos para que considere que los valores intermedios son nulos. Eso estaba bien, era un avance, pero ¿porqué? Después vi en el Nagios que habían tests que tenían mucha latencia, es decir que la ejecución del test se realizaba más tarde de lo que estaba programada, y como andaba mal de tiempo probé de cambiar unos parámetros y dejar pasar el tiempo.

A los pocos días coincidí con SMS en el tren camino de Barcelona, y en el intercambio de miserias típico cuanto te encuentras con colegas de penurias le comenté el tema de la latencia del Nagios, y pensé que estaba de suerte ya que me comentó que el Ruso ya había tenido el mismo problema en otro proyecto y que modificando valores del nagios.conf había salvado la situación. El paso era claro, en vez de enfrascarse en una competición de “pues yo también puedo configurar bien un Nagios”, “por mis cojones que yo también lo hago” u otras historias trasnochadas, le escribí un mail para ver que parámetros le habían solventado el problema. Cuando vi que eran los mismos parámetros que había modificado en su momento como que me vino un poco de bajón y ganas de tirar la toalla y optar por soluciones más sencillas y poco elegantes… sí, estamos hablando de un cron que lo reiniciase periódicamente.

Pero vamos, que aunque currando me gusta subirme las mangas, arrasar con destornilladores y si hace falta mancharme no quiere decir que me gusten las cosas sucias; por otro lado tampoco soy un tipo lo que se dice elegante, pero hay que cuidar las apariencias. Y el orgullo, porque ya estaba comenzando a ser un problema de amor propio. Así que un fin de semana que tenía algo ocioso me puse a seguir el tema. Lo primero era ver como iba el tema de la latencia, así que me hice mis tests y mi plugin para el PatrickGraph y a esperar los resultados:

Latency times on Nagios

Ea, el tema se mantiene estable hasta que comienza a crecer y se desmadra. Me emparanoio con los tiempos necesarios para ejecutar los tests, reduzco algunos que eran excesivos. Vuelvo a probar y nada. Los tiempos de latencia se vuelven a desmadrar. Ahí se me fue la castaña e intenté cambiar algunos tests hechos en php en C. ¡Vaya locura programar SNMP en C! Enseguida lo dejé de lado. Y me dio por mirar el top, y comencé a ver más la luz, el proceso de Nagios tragaba memoria a cantidades industriales, cada vez más.

Nagios process memory

Esto no era normal, así que me puse a hacer pruebas y más pruebas hasta que vi el problema, el Perl embebido. Recompilado sin soporte para Perl embebido el chaval mantiene el consumo de memoria a raya sin ningún problema.

Ufff… un problema menos con el que dejar el año 😉

Anuncios

1 comentario »

  1. Buenas, quieres decir que instalastes un nagios sin soporte de perl embebido??? dios no hay mas solcuion que esa??? jejje merci.

    Comentario por Rafa — 5 junio 2012 @ 11:55 | Responder


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: