¿Qué es el equilibrio de carga? | Cómo funcionan los equilibradores de carga

El equilibrio de carga es el proceso de distribuir el tráfico entre varios servidores para mejorar el rendimiento y la fiabilidad de un servicio o aplicación.

Metas de aprendizaje

Después de leer este artículo podrás:

  • Definir equilibrio de carga
  • Explicar las dos categorías principales de algoritmos de equilibrio de carga
  • Entender los conceptos importantes del equilibrio de carga, como la supervisión y la conmutación por error del servidor

Contenido relacionado


¿Quieres saber más?

Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar el enlace del artículo

Mejora el rendimiento de tu sitio web con Cloudflare Pro y nuestros complementos de herramientas de velocidad

¿Qué es Load Balancing?

Imagen de equilibrio de carga

El equilibrio de carga es la práctica de distribuir las cargas de trabajo informáticas entre dos o más ordenadores. En Internet, el equilibrio de carga se suele emplear para dividir el tráfico de red entre varios servidores. Esto reduce la carga de cada servidor y hace que los servidores sean más eficientes, acelerando el rendimiento y reduciendo la latencia. El equilibrio de carga es fundamental para que la mayoría de las aplicaciones de Internet funcionen correctamente.

Sin equilibrio de carga: el servidor se sobrecarga, el servicio es lento Con equilibrio de carga: la carga de trabajo se distribuye de forma uniforme

Imaginémonos una cola en la caja para pagar de un supermercado con 8 cajas, de las cuales solo una está abierta. Todos los clientes deben ponerse en la misma cola y, por tanto, un cliente tarda mucho tiempo en terminar de pagar su compra. Ahora imaginemos que la tienda abre las 8 cajas. En este caso, el tiempo de espera de los clientes es unas 8 veces menor (dependiendo de factores como la cantidad de comida que compra cada cliente).

El equilibrio de carga consigue básicamente lo mismo. Al dividir las solicitudes de los usuarios entre varios servidores, el tiempo de espera de los usuarios se reduce considerablemente. El resultado es una mejor experiencia para el usuario: los clientes del supermercado del ejemplo anterior probablemente acaben buscando un supermercado más eficiente si siempre experimentaran largos tiempos de espera.

¿Cómo funciona el equilibrio de carga?

El equilibrio de carga lo gestiona una herramienta o aplicación llamada equilibrador de carga. Un equilibrador de carga puede estar basado en hardware o en software. Los equilibradores de carga por hardware requieren la instalación de un dispositivo de equilibrio de carga específico; los equilibradores de carga por software pueden ejecutarse en un servidor, en una máquina virtual, o en la nube. Las redes de entrega de contenido (CDN) suelen incluir funciones de equilibrio de carga.

Cuando llega la solicitud de un usuario, el equilibrador de carga asigna la solicitud a un servidor determinado, y este proceso se repite para cada solicitud. Los equilibradores de carga determinan qué servidor debe gestionar cada solicitud en base a una serie de algoritmos diferentes. Estos algoritmos se dividen en dos categorías principales: estáticos y dinámicos.

Algoritmos de equilibrio de carga estático

Los algoritmos de equilibrio de carga estático distribuyen las cargas de trabajo sin tener en cuenta el estado actual del sistema. Un equilibrador de carga estático no sabrá qué servidores tienen un rendimiento lento y qué servidores no se utilizan lo suficiente. En su lugar, asigna las cargas de trabajo basándose en un plan predeterminado. El equilibrio de carga estático es rápido de configurar, pero puede dar lugar a ineficiencias.

Volvamos a la analogía anterior; imaginemos que el supermercado con 8 cajas abiertas tiene un empleado cuyo trabajo es dirigir a los clientes hacia las diferentes colas. Imaginemos que este empleado simplemente va por orden, asignando al primer cliente a la cola 1, al segundo a la cola 2, y así sucesivamente, sin mirar para comprobar la rapidez con la que se mueven las líneas. Si los 8 cajeros actúan de forma eficiente, el sistema funcionará bien, pero si uno o varios se retrasan, algunas colas pueden alargarse mucho más que otras, lo que provocaría una mala experiencia para el cliente. El equilibrio de carga estático presenta el mismo riesgo: a veces, los servidores individuales pueden seguir sobrecargándose.

El DNS round robin y el equilibrio de carga aleatorio del lado del cliente son dos formas habituales de equilibrio de carga estático.

Algoritmos del equilibrio de carga dinámico

Los algoritmos de equilibrio de carga dinámico tienen en cuenta la disponibilidad actual, la carga de trabajo y el estado de cada servidor. Pueden desplazar el tráfico de los servidores sobrecargados o de bajo rendimiento a los servidores infrautilizados, manteniendo una distribución uniforme y eficiente. Sin embargo, el equilibrio de carga dinámico es más difícil de configurar. Hay varios factores que influyen en la disponibilidad de los servidores: el estado y la capacidad general de cada servidor, el tamaño de las tareas que se distribuyen, etc.

Supongamos que el empleado del supermercado que clasifica a los clientes en las colas de la caja utiliza un enfoque más dinámico: el empleado observa las colas cuidadosamente, ve cuáles se mueven más rápido, observa cuántos productos está comprando cada cliente y asigna a los clientes en base a eso. Esto puede garantizar una experiencia más eficiente para todos los clientes, pero también supone un mayor esfuerzo para el empleado que clasifica las colas.

Hay varios tipos de algoritmos de equilibrio de carga dinámico, como el de menor conexión, el de menor conexión ponderada, el basado en recursos y el basado en geolocalización.

¿Dónde se utiliza el equilibrio de carga?

Como se ha comentado anteriormente, el equilibrio de carga se suele utilizar con aplicaciones web. Los equilibradores de carga basados en software y en la nube ayudan a distribuir el tráfico de Internet de manera uniforme entre los servidores que alojan la aplicación. Algunos productos de equilibrio de carga en la nube pueden equilibrar las cargas de tráfico de Internet entre servidores repartidos por todo el mundo, un proceso que se conoce como equilibrio de carga global del servidor (GSLB).

El equilibrio de carga también se utiliza habitualmente en las redes localizadas grandes, como las de un centro de datos o un edificio de oficinas grande. Tradicionalmente, esto ha requerido el uso de aparatos de hardware como un controlador de entrega de aplicaciones (ADC) o un dispositivo de equilibrio de carga específico. Los equilibradores de carga basados en software también se utilizan para esto.

¿Qué es la supervisión del servidor?

Los equilibradores de carga dinámicos deben conocer el estado de los servidores: su estado actual, su rendimiento, etc. Los equilibradores de carga dinámicos supervisan los servidores mediante comprobaciones de estado periódicas. Si un servidor o grupo de servidores tiene un rendimiento lento, el equilibrador de carga distribuye menos tráfico hacia este. Si un servidor o grupo de servidores falla completamente, el equilibrador de carga redirige el tráfico a otro grupo de servidores, un proceso conocido como "conmutación por error."

¿Qué es la conmutación por error?

La conmutación por error ocurre cuando un determinado servidor no funciona y un equilibrador de carga distribuye sus procesos normales a un servidor o grupo de servidores secundarios. La conmutación por error de los servidores es fundamental para la fiabilidad: si no hay una copia de seguridad, una caída del servidor podría hacer que un sitio web o una aplicación dejaran de funcionar. Es importante que la conmutación por error se produzca rápido para evitar una interrupción del servicio.

Más información sobre los diferentes aspectos del equilibrio de carga: