Home Artículos técnicos Impacto del equilibrio de carga adaptativo en la producción
Applications

Impacto del equilibrio de carga adaptativo en la producción

About The Author

Outline

En nuestra CDN desarrollamos continuamente formas nuevas e innovadoras para ayudar a nuestra infraestructura a mantener un alto rendimiento y resiliencia durante aumentos repentinos de carga. Esto a menudo implica explorar optimizaciones en las técnicas existentes que utilizamos. Además, la validación de nuevos enfoques es una parte importante de este proceso, ya que garantiza que los nuevos cambios tengan los impactos positivos esperados en los entornos de producción.

Cuando el contenido se vuelve popular, lo replicamos en varios servidores en un centro de datos / Punto de presencia (POP). Esto nos permite equilibrar mejor la carga y manejar tales sobretensiones, reduciendo el riesgo de sobrecarga de servidores. Este mecanismo de replicación se llama ‘Hot Filing’, y el contenido popular se llama ‘hot file’. Recientemente desarrollamos una optimización de equilibrio de carga adaptativa (ALB) que mejora nuestra presentación en caliente tradicional al hacerlo más resistente a las oleadas de tráfico. En particular, decide dinámicamente la cantidad de replicación necesaria midiendo la carga del servidor en lugar de depender de umbrales estáticos. Esto distribuye de manera más uniforme la carga entre todos los servidores en un pop, aumentando la capacidad general de manejo de solicitudes de cualquier pop y, por lo tanto, la CDN. Nuestro artículo anterior sobre la evaluación de un sistema de equilibrio de carga adaptativo detalla la mecánica de esta optimización.

En este post, validamos el impacto positivo de esta optimización en la producción. Comenzamos definiendo las métricas que utilizamos para medir el impacto. A continuación, mostramos el impacto de la optimización en cada una de estas métricas a través de ejemplos. Finalmente, mostramos el impacto agregado de la optimización en todos los pops donde se implementó. En resumen, encontramos que el tiempo total de los servidores vio una carga excesiva más allá de un umbral predefinido reducido en al menos un 70%, mientras que casi todos los pops vieron una mejora en esta métrica. Esta optimización ahora está habilitada globalmente para todo el tráfico de clientes.

Definir las métricas

Para evaluar el impacto de esta nueva optimización en la producción, definimos y monitoreamos tres métricas:

  1. Server skewness: Esta es la relación de la carga de un servidor sobre la carga media sobre todos los servidores en el pop.
  2. Número de archivos calientes: Este es el número de archivos replicados por el mecanismo Hot Filing en un momento dado. Se espera que el equilibrio de carga adaptativo aumente el número de archivos en caliente, ya que el llenado en caliente es el mecanismo subyacente para su distribución de carga.
  3. Los servidores de tiempo pasan por encima de la inclinación del objetivo: Esta métrica evalúa la efectividad del Equilibrio de carga adaptativo. Cuando establecemos nuestro umbral de sesgo de destino a un valor en particular, queremos ver que la sesgo de la mayoría de los servidores suele ser menor que ese valor.

Impacto de la optimización en las métricas monitorizadas

LOGRAR UN SESGO OBJETIVO

La siguiente figura muestra dos instantáneas de la distribución de carga de los servidores en un pop. A la izquierda (sin Equilibrio Adaptativo de Carga), vemos un número de servidores que exceden el objetivo de sesgo (caja roja) con su carga por encima de 1,8 veces la mediana del pop. A la derecha (con Adaptive Load Balancing), vemos un mayor equilibrio entre servidores, sin servidores que muestren una carga superior a 1,8 veces la mediana.

Cambio en la distribución de carga con Adaptive Load Balancing. Notamos una reducción en servidores sobrecargados.

NÚMERO DE ARCHIVOS CALIENTES Y DISTRIBUCIÓN DE CARGA
A continuación, examinamos cómo se afectó el número de archivos calientes y los cambios correspondientes a la carga en cada servidor. La siguiente gráfica muestra que el número de archivos calientes aumentó cuando ALB se habilitó en un pop. Este comportamiento era esperado ya que el mecanismo aumenta selectivamente las posibilidades de que los archivos se descarguen de servidores con una carga más alta.

Fundamentalmente, el hot filing y ALB reducen la carga en servidores individuales al aumentar el número de servidores que dan servicio a archivos particulares. Esto aumenta la carga de almacenamiento en cada servidor. Sin embargo, los archivos adicionales elegidos para ser replicados en un momento dado son relativamente bajos en comparación con el total de archivos servidos desde el pop, ya que se seleccionan solo de servidores atípicos que requieren descarga. En la mayoría de los casos, el espacio de caché adicional utilizado es muy pequeño en comparación con el espacio total en disco. Por lo tanto, la compensación vale la pena, pero es importante identificarla y ser consciente de ella. En nuestra implementación, incluimos comprobaciones de cordura para validar que el uso de la caché no se ve afectado negativamente por esta optimización.

Número de archivos calientes. El número aumenta cuando se activa el Equilibrio de carga adaptativo (marcador rojo), ya que se intenta descargar servidores atípicos.

El segundo gráfico muestra el volumen de tráfico entregado por cada servidor en el mismo período de tiempo en ese pop. Observamos que cuando se activó el Equilibrio de Carga Adaptativo (línea roja discontinua) la carga entre servidores se volvió más equilibrada. Esto hizo que los servidores fueran más resistentes al tráfico entrante y redujo el riesgo de sobrecargar los servidores.

Distribución de carga (Mbps) en un pop entre 05/02-05/04. Cuando se activa el Equilibrio de carga adaptativo, la distribución se vuelve más fluida, con más servidores que entregan tráfico más cerca de la mediana. Esto ayuda a mitigar el riesgo de que los servidores se sobrecarguen con nuevo tráfico.

EL TIEMPO INVERTIDO EN LA DISTORSIÓN DE LOS OBJETIVOS
Aquí, consideramos un experimento en el que se estableció un pop para mantener un sesgo objetivo de 1.6x. En la figura de abajo, la línea naranja muestra la distribución de “server skewness” durante el período del experimento. Comparando esta distribución con la línea azul, que es la distribución respectiva para el período de base (sin equilibrio de carga adaptativo), vimos un cambio de carga hacia la mediana. Notablemente, la “cola” de la distribución también se redujo significativamente, con el percentil 99 cayendo de 2,12 a 1,52, por debajo de la inclinación del objetivo.

El equilibrio de carga adaptativo disminuye la carga máxima del servidor y acerca las cargas del servidor a la mediana.

Reducir esa “cola” en la distribución es el objetivo principal de la optimización ya que los servidores de esa cola, es decir, los que tienen la mayor carga, corren un mayor riesgo de sobrecargarse con nuevos picos de tráfico. Para cuantificar aún más esta reducción, también medimos el número de minutos para los cuales cualquier servidor entregó tráfico sobre el objetivo durante los períodos de experimento con/sin Equilibrio de carga adaptativo:

El equilibrio de carga adaptativo reduce el tiempo que los servidores dedican a entregar una carga por encima de un umbral objetivo.

En este caso, observamos una reducción del 88% en el tiempo invertido sobre la inclinación del objetivo en este pop. Este es un buen indicador de que el equilibrio de carga adaptativo puede mantener la inclinación de la distribución de carga alrededor del valor deseado.

Resultados del despliegue global

Después de probar la optimización en un puñado de pops seleccionados y ver buenos resultados en las métricas medidas, implementamos el sistema en cada pop para cuantificar el impacto agregado a lo largo del tiempo. Como antes, medimos el número de servidores de minutos colectivos en un pop gastados entregando tráfico por encima de nuestro sesgo de destino especificado (establecido en 1.8x mediana de carga del servidor en un pop). La siguiente gráfica muestra dos distribuciones de servidores de minutos gastados por encima de ese umbral para 75 pops. La línea azul corresponde a 4 días de datos basales, y la línea naranja corresponde a 4 días de datos de Equilibrio Adaptativo de Carga. El cambio general de la distribución a la izquierda muestra que los servidores en los pops que ejecutan Equilibrio de carga adaptativo pasaron menos minutos por encima del umbral.

Agregue los minutos que pasan los servidores que entregan carga superior al umbral especificado (1,8 * mediana) durante 4 días para todos los pops. Con Adaptive Load Balancing, la distribución se desplaza a la izquierda, mostrando que el mecanismo mantiene las cargas del servidor por debajo de la desviación objetivo de la mediana durante más tiempo.

Para comprender mejor los impactos en los pops individuales, también registramos el cambio porcentual para esta métrica para cada pop. Los resultados mostraron que la mitad de los Pops vieron una reducción del 70-95% en el tiempo total de los servidores por encima de la inclinación del objetivo, y casi todos los Pops vieron una reducción en el tiempo pasado por encima del umbral.

En nuestro esfuerzo continuo por mejorar continuamente el rendimiento y la fiabilidad de nuestra CDN, recientemente implementamos y evaluamos una optimización en la forma en que equilibramos el tráfico de carga dentro de un POP. Esta optimización identifica los servidores cargados sobre un umbral especificado en comparación con el resto del pop y descarga esos servidores, especialmente mitigando el riesgo de impacto en el rendimiento en caso de nuevos picos de tráfico. Los resultados de la producción demuestran mejoras significativas que han sido consistentes con los resultados de simulación anteriores en mostrar la eficiencia de la optimización en el mantenimiento de la distribución de la carga del servidor dentro de un sesgo deseado. Como resultado, ahora hemos habilitado esta optimización a nivel mundial para todo el tráfico de clientes.

Un agradecimiento especial a Angela Chen por trabajar en la implementación y despliegue de este mecanismo. Además, gracias a Scott Yeager, Derek Shiell, Marcel Flores, Anant Shah y Reed Morrison por ayudar con las discusiones generales, Colin Rasor, Richard Rymer y Olexandr Rybak por ayudar con la recopilación y visualización de datos.