Catalogado bajo: Informática, Internet
Lo soltó: Aloriel - 25/03/2012 a las 14:40:53

Menéame y su efecto ya no son lo que eran, o eso o he preparado muy bien el servidor para aguantar el tráfico. Voy a pasar a explicar la historia completa sobre el comportamiento del servidor y cómo me preparé para una circunstancia así, en la que he conseguido no sólo seguir navegando sin complicaciones durante el meneo, sino que el blog no se cayese y el servidor aguantase todo el tráfico y todas las peticiones.

El día 21 menearon la entrada De los Erasmus españoles pero no llegó a portada hasta el día siguiente hacia las 19:50 (aprox.). La verdad es que yo ya no contaba con que saliese publicada. Había recibido unas 600 visitas de Menéame y Facebook el día que la menearon, pero no parecía que llegase a portada por los pocos meneos que tenía. Eso sí, tenía muchos «clics».

Lo primero que quería comentar acerca de Menéame es que parece que ha perdido muchos usuarios y que han cambiado el algoritmo. En la ¿mejor? época de Menéame hacían falta más de 200 meneos para llegar a portada, si no recuerdo mal. Probablemente ambas cosas hayan pasado hace tiempo, pero ya no me fijo en ello. El caso es que la última vez que miré el meneo, antes de su publicación, apenas 30 personas lo habían meneado. Imagino que entró en «populares» por la cantidad de «clics» y de ahí acabó en portada. No lo voy a negar, yo también animé a mis contactos en Facebook a que la meneasen, no sé si muchos lo hicieron.

A las 20:00 me llega un correo de mi monitorización local avisándome de que el Apache está usando 150 conexiones. Luego otro con 180 conexiones con el que, de paso, reiniciaba el apache, cosa que se ve perfectamente en la memoria libre disponible en ese momento.

La buena fortuna quiso que tuviese terminada la monitorización gráfica un día antes de que el meneo se publicase, aunque me di cuenta de que estaba monitorizando mal el uso de memoria y CPU de Apache MySQL, monitorizando un solo proceso de los muchos que había lanzados.
Tengo que decir que mis dos blog son extremadamente modestos, Turismo Google hace unas 250-300 visitas diarias (sigo trabajando en él, a ver si despega) y La puerta de Tannhauser unas 100 150, por lo que las estadísticas de tráfico saliente un día normal son así:

Trafico saliente en Deimos en un día normal:
Trafico saliente en Deimos en un día normal

Bien, el día que salió la noticia a portada del Menéame esto fue lo que ocurrió:

Estadísticas de salud de Deimos el día del meneo:

Lo que me lleva a la conclusión de que el efecto menéame es principalmente el pico de los primeros 20-30 minutos después de salir el artículo a la portada, y luego un tráfico sostenido durante bastantes horas. Aunque imagino que también dependerá del tipo de artículo. En cualquier caso la monitorización respondió perfectamente y mantuvo la página arriba. No se disparó ninguna otra alarma (aunque probablemente si hubiese monitorizado correctamente la memoria y CPU del Apache sí lo habría hecho).

Mi blog dice que tiene unas 22 000 visitas; Menéame dice que me ha redireccionado más de 17 500. Con Google Analytics y StatCounter en la mano, veo que algunos volvieron más tarde a la entrada sin un URL de referencia, es decir, tráfico directo, más las referencias de Twitter, Facebook y correo electrónico.

Estadísticas de Google Analytics para el meneo:

Principales fuentes de tráfico en los últimos días

Estadísticas de StatCounter para el meneo:

Ahora paso a explicar la monitorización. Existen varios motivos por los que el blog no se cayó y siguió sirviendo páginas. Uno es la monitorización y el otro es la configuración de Apache.

Respecto a la monitorización para la web, tengo varios scripts que me avisan de lo siguiente:

  • No responde al ping (3 intentos de ping)
  • Uso de memoria
  • Uso de memoria y CPU por parte de Apache y MySQL
  • Tráfico de salida
  • Comprobación de que Apache y MySQL se están ejecutando, en caso contrario los arranca
  • Comprobación del número de conexiones abiertas
  • Comprobación del número de procesos de Apache2 en ejecución (si es muy alto, reinicia Apache, muy visible en las gráficas)

Además, tengo monitorización externa en monitor.us, servicio gratuito que me proporciona informes de disponibilidad de los dos blogs, enviandome un correo si se cae alguno.

Esa es la monitorización automática, luego tengo las gráficas que las compruebo cuando quiero. Muy interesantes el día del meneo y el día después.

Por último está la configuración predeterminada de Apache que no sirve para aguantar más que un tráfico muy pequeño. La memoria que usa, el número de procesos, etc.

Hace mucho tiempo (6 ó 7 años), cuando también hospedaba el blog en mi servidor casero de Valladolid, sufrí varios meneos y efectos barrapunto que tiraron el blog abajo varias veces. No quería que me volviese a pasar, así que me dediqué a indagar cómo configurar un poco mejor el servidor. Creo recordar que cuando el blog estaba hospedado en la Universidad de Valladolid también se llegó a caer por otro efecto menéame.

Ya para terminar, hace un mes aproximadamente, pedí a unos cuantos amigos que lanzasen el LOIC contra la web, a ver si aguantaba. Con 5 ó 6 LOIC a la vez el blog aguantaba pero la respuesta era lenta. No es una maravilla pero no está mal. 

Eso sí, el hecho de que las conexiones de hoy en día no cierren los puertos y permitan un tráfico más o menos considerable es otro motivo que ha permitido que el blog estuviese arriba durante todo el efecto.

Y eso es todo amigos. Si quieren hospedar sus propias páginas no se olviden de hacerlo bien, pero sobre todo no se olviden de monitorizarlo.

Gracias a Artica S.T. por todo lo que aprendí allí sobre monitorización que, de nuevo, me ha servido para esto y también para tener mi trabajo actual ;)


# Lo soltó: nil - 25/03/2012 a las 17:24:13
No hay nada como ver una grafica ;) con pandora eso si, son mas bonitas !.

Uno de cuellos de botella tb es el consumo de cpu, si tienes un backend algo mas pesado, eso y las conexiones tcp totales, si no esta optimizado el kernel, puede no aceptar mas (cuando tiene muchas en pending close) y quedarse cuajado, por eso lo mejor es mirar varias cosas a la vez.

Y si el meneame es una puta caca. Les tengo una mania tremenda :)


# Lo soltó: Aloriel - 26/03/2012 a las 11:02:37
# nil: pandora las hace guapas, guapas. Pero no necesito un Pandora FMS para monitorizar 3 cosas en mi servidorcillo ;)

El backend parece que no es muy pesado, no he hecho muchas pruebas de rendimiento pero por el comportamiento que ha tenido durante el meneo, veo que no está mal. Además tampoco veo mucho impacto en la BB. DD., por lo que las consultas SQL no deben estar muy mal escritas.

Respecto a las conexiones TCP, es muy interesante saberlo, creo que lo tengo controlado con el máximo de 180 que le tengo puesto al reinicio del Apache, aunque estaría muy bien saber cuál es el máximo real que puede agunatar, si bien no me he dedicado a mirarlo. Fue un valor que puse de forma arbitraria aunque no parece que vaya mal encaminado del todo.

En cualquier caso, no me quejo del Menéame en si, ni de su efecto. Se agradecen las visitas pero son efímeras; la gran mayoría no volverá.


Los comentarios para esta entrada están cerrados.
Lu Ma Mi Ju Vi Do
« Ago    
1234567
891011121314
15161718192021
22232425262728
2930
www.flickr.com

Aloweblog

Sindicación RSS

Creative Commons License


Estadísticas