Autoscale permite a Facebook un aumento del 15% en ahorro de energía al cargar menos servidores con más trabajo.
Según Wikipedia, el balanceo de carga fue diseñado para distribuir cargas de trabajo entre múltiples recursos informáticos: para maximizar el rendimiento, minimizar el tiempo de respuesta y prevenir la sobrecarga de cualquier servidor.
En la interminable búsqueda de Facebook de mejorar la eficiencia de los centros de datos, se estudió detenidamente el equilibrio de carga como una posible forma de ahorrar electricidad. Qiang Wu, ingeniero de software de infraestructura de Facebook, escribió el artículo en el blog Haciendo que la infraestructura de software de Facebook sea más eficiente energéticamente con Autoscale para destacar lo que él y otros ingenieros de Facebook han aprendido.
Wu describió la actual política de equilibrio de carga de Facebook como basada en un algoritmo modificado de round-robin. Wu escribió: «Esto significa que cada servidor recibe aproximadamente el mismo número de solicitudes de páginas (Facebook maneja miles de millones de solicitudes de páginas cada día) y utiliza aproximadamente la misma cantidad de CPU».
El problema con el enfoque de round-robin
Wu indicó que los ingenieros determinaron que ciertos servidores web consumen energía a las siguientes tasas:
- 60 vatios en ralentí
- 130 vatios a bajo nivel de uso de la CPU
- 150 vatios con un uso de CPU de nivel medio
Debido a los números anteriores, Wu y los otros ingenieros se dieron cuenta de que el sistema de equilibrio de carga actual de Facebook no tenía en cuenta las horas de menor consumo (a altas horas de la noche) cuando el número de solicitudes de página se redujo. En lugar de llenar todos los servidores a un nivel reducido, tenía más sentido y ahorraba electricidad para cargar los servidores hasta que utilizaban 150 vatios de potencia y dejaban inactivos a los servidores no utilizados.
Presentación de Autoscale
Saber qué hacer y lograrlo son dos cosas diferentes. Wu describió la tarea que tienen por delante: «Aunque la idea parece simple, es una tarea difícil de implementar de manera efectiva y robusta para un sistema a gran escala».
Sin embargo, no se puede negar que los ingenieros tuvieron una idea que ellos llaman Autoscale.
Autoscale consta de tres partes (): balanceador de carga personalizado, controlador de Autoscale y el conjunto físico de servidores. En pocas palabras, Autoscale:
- ajusta el tamaño del grupo de servidores activos a las condiciones actuales, y
- asegura que cada servidor activo se carga al nivel de uso medio (150 vatios.
Wu luego describió cómo Autoscale logró el escalado/equilibrio de carga.
- Autoscale recopila información de uso (carga de CPU y cola de solicitud) de todos los servidores activos.
- Autoscale decide el número óptimo de servidores a mantener en el pool activo.
- Autoscale informa a los balanceadores de carga de Facebook sobre el número de servidores en el grupo activo.
- Los equilibradores de carga distribuyen el trabajo entre los servidores activos.
Si eso suena fácil de hacer, no lo es. Como Wu aludió antes, hay una gran cantidad de software para que Autoscale sepa cuándo hacer qué. Wu describió lo que es «saber qué hacer»:
Los resultados preliminares son exitosos
Los centros de datos de Facebook ya están utilizando Autoscale para controlar la carga del servidor web de producción. El gráfico de Facebook en la muestra la potencia total utilizada por un solo clúster web durante un período de 24 horas. Wu escribió: «La autoescala llevó a un ahorro de energía del 27 por ciento alrededor de la medianoche. El promedio de ahorro de energía en un ciclo de 24 horas es del 10-15 por ciento para diferentes clusters web».
Tener que lidiar con miles de millones de solicitudes de páginas cada día nos lleva a creer que Facebook tiene un montón de clústeres web. La reducción de potencia obtenida mediante el uso de Autoscale tiene que traducirse en ahorros significativos.
Wu declaró que los ingenieros de Facebook siguen ajustando los algoritmos de la escala automática y prevén nuevas ganancias. Como miembro líder del Open Compute Project, se espera que Autoscale esté disponible para que otros lo utilicen.