Desarrollo

Cómo solucionamos el problema de ralentización de carga por imágenes


Hace algunos meses, nos encontramos en AvaiBook con algo que, poco a poco, se convirtió en un blocker para nuestros clientes pero, sobre todo, para los clientes de estos. Era la ralentización de carga de algunas páginas en las que se hacía uso de imágenes.

¿Cómo llegamos hasta esto?

Todo comenzó cuando creamos una nueva sección para nuestros clientes donde les dimos la posibilidad de almacenar fotografías de sus alojamientos. De esta manera, podrían centralizar la gestión de las mismas desde un solo lugar

Cuando las tuvimos, nos dimos cuenta de que quizás podía ser útil hacer uso de ellas en el sistema de reservas online que ofrecemos a nuestros clientes, algo muy positivo para ellos pues, de esta forma, los viajeros que accedieran a sus anuncios podrían disfrutar, casi, de un “tour” previo por el alojamiento antes de decidirse por él debido a la cantidad de imágenes que proporcionaríamos y a la calidad de las mismas.

Claro, poco a poco, y por requerimiento de nuestros partners, la calidad mínima de estas imágenes fueron aumentando. Esto significó, como podemos imaginarnos, una disminución en la velocidad de carga.

¿Qué hicimos al respecto?

Para solucionar este problema, decidimos optimizar las imágenes, reduciendo su peso y generando un par de tamaños adicionales -además del original- para poder usarlos de manera adecuada y mejorar así la carga de páginas.

Parecía sencillo: programamos un cron en los servidores que recorrió más de medio millón de imágenes alojadas en nuestros servidores. Las optimizamos y, en un par de noches, ¡lo teníamos! O eso pensamos.

Cuando realizamos la primera prueba, nos dimos cuenta de que nuestro pronóstico había fallado. Vimos que el manejo de imágenes es muy exigente con la CPU de los servidores y que las máquinas actuales se quedaban cortas para abastecer las peticiones de nuestros clientes, las de nuestros partners y, además, procesar las imágenes. 

Así que nos pusimos en contacto con nuestros colegas de idealista, pusimos en común el problema y enseguida preparamos una nueva máquina dedicada exclusivamente al procesamiento de imágenes, capaz de procesar más de 1.500 imágenes por minuto. Para ello, ejecuta un cron programado varias veces por hora, que va realizando acciones de compresión de imágenes, limpieza de información privada -modelo de dispositivo desde el que se hizo, fecha, coordenadas, etc.- y cortes, en este caso tres, a distintos tamaños.

¡Lo conseguimos! En el momento que empezamos a tratar las imágenes de esta forma, las páginas de nuestros clientes, que en ocasiones superaban los 40 y 50 segundos de carga, se vieron mejoradas con una reducción de tiempo de carga de más del 95%.

DEJA UNA RESPUESTA

Tu dirección de correo electrónico no será publicada.