Por todos casi todos es sabido que tener una tienda online con Magento es cuanto menos complicado a nivel servidor. El software, propiedad de Adobe, consume muchos muchos recursos realizando entre otros procesos complicadas indexaciones que cargan las CPU’s con unos picos de consumo de máquina altísimos.
No todos los hostings aguantan bien Magento y hacen falta buenos administradores de sistemas, con amplia experiencia, para que los ecommerces con Magento vayan finos o al menos no sufran con tiempos de carga lentos, caídas y otras interrupciones del servicio.
Existen múltiples herramientas para monitorizar el estado de tu servidor. Nosotros en Santafixie usamos GRAFANA. Que es una herramienta muy potente y de código abierto que sirve para el análisis y visualización de métricas de infraestructuras de servidores y aplicaciones. Con Grafana puedes configurarte paneles de datos tipo esto:
Y sin duda, este tipo de herramientas se convierten en perfectas aliadas para la reducción del tiempo de carga del servidor.
Este año notábamos algunos días de la semana que la tienda online iba más lenta de lo normal. 🤬 Que tardaba mucho en cargar, especialmente páginas de categoría y de producto. Así que nos pusimos a investigar y a tirar de varias hipótesis.
Os cuento lo que hicimos, por si a alguien le pasa lo mismo y puede solucionarlo.
Alejandro, nuestro CTO entonces, lideró el proyecto, la investigación y las soluciones.
Fuimos poco a poco yendo hacia atrás en el tiempo en los datos que nos mostraba Grafana para descubrir o al menos tener una fecha aproximada, de cuándo empezó el servidor a comportarse mal o de manera inestable.
1.- Este era el estado de nuestro servidor en cualquier día de 2021, cuanto todo era más o menos normal. Esta gráfica muestra el consumo de todas las CPU’s que tenemos en el servidor. Aparentemente todo bien.
2.- Pero la cosa se puso un poco gris, con picos de consumo inusuales y menos estabilidad. Parece que hay mini terremotos en las CPU’s. Este era el estado de las CPU’s a mediados de Enero de 2022.
3.- Estado en mediados de Febrero de 2022 y mediados de Marzo de 2022. La cosa se empieza a poner más fea. Pero ya teníamos unas semanas donde poder analizar qué había podido pasar. El pico máximo que ves en la primera gráfica nos produjo una caída de varios minutos, que obviamente nos hizo perder algunas ventas.
4.- El tema era: ¿Qué despliegue hemos hecho en producción que ha generado esta inestabilidad en el servidor? Estábamos seguros de que alguna de las mejoras subidas a principios de año era la causante del problema. Así que paramos nuevas tareas y desarrollos y nos pusimos a investigar cada uno de los tickets y haciendo pruebas en el servidor de desarrollo 🧐
5.- Varias semanas analizando y no dábamos con la tecla. Qué locura. En un principio nada de lo que habíamos subido nosotros era el causante del problema. ¿Pero entonces qué era?
Analizamos desde otra perspectiva y vemos que hay algunas IP’s que nos están lanzando miles de peticiones de consulta al servidor por minuto. WTF !!!???
👇👇👇
11:05am bloqueamos Amazonbot
12:30pm bloqueamos Bingbot
La bajada en consumos de CPU’s después del segundo bloqueo es espectacular 😀
6.- Pero ¿qué son estos BOTS, por qué nos lanzan peticiones y cómo podemos mitigar o anular su efecto?
Son arañas o crawlers (en inglés) que desarrollan distintas empresas como Microsoft, Google o Amazon con distintos objetivos y que se encargan de rastrear todas las páginas que van encontrando en Internet.
Te dejo un par de artículos donde tratan el tema y que 💥 pueden ayudarte mucho para mejorar el servidor de tu tienda online. En Internet puedes encontrar muchos más:
– Controlar los bots, spiders, y rastreadores.
– Bloquear bots poco útiles y que consumen ancho de banda.
7.- Hicimos la prueba al contrario y días después activamos Bingbot unos minutos y lo desactivamos después. Es alucinante el efecto que sólo esta araña de Microsoft tenía sobre nuestro servidor.
8.- Te comparto por último la gráfica que muestra los tiempos de respuesta del servidor después de bloquear ambos BOTS. Como ves la reducción en tiempo es increíble.
9.- Importante: Analiza qué pasa en tu servidor y que Bots pueden estar afectando a la máquina. No bloquees IP’s o rangos de IP’s así porque sí, sin saber qué son, porque puede que estes dejando sin acceso a tu tienda online a «usuarios buenos». Y analiza también si te interesa que estos Bots rastreen tu web o no, porque si mucho de tu tráfico viene de Bing por ejemplo no te interesa bloquear este Bot.
Publiqué hace unas semanas en Twitter una de las capturas y Fernando Gómez, CEO de Boardfy me contestó con unos buenos consejos que te dejo aquí para que puedas aplicarlo en tu servidor o le pases a tu equipo de IT 😉
Revisa los logs:
– peticiones sin user agent
– peticiones de la misma ip a saco
Ordena esto en un Excel
– revisa cada ip. Mira el país. Es ip de operadora o servidor?
– banea en el firewall la clase c de esas ips que apestan
Magia 🎩20% menos de tráfico— Fernando Gomez (@fgomez) October 7, 2022
Comentarios
Buenas 🙂
Fantástico artículo y tool para la visualización de peticiones al servidor.
En definitiva el problema que vuestro servidor fuese más lento, ha sido por las peticiones de Crawlers o ¿Habéis encontrado algo más?
Me sorprende que esta sea la causa principal, era un aspecto que no tenía en cuenta hasta ahora para optimizar la velocidad de carga de Servidores.
¡Gracias!