Índice

Reparto de carga (clúster NLB)

El reparto de carga resulta indispensable cuando no basta con un único servidor para gestionar toda la carga de la aplicación o mantener unos tiempos de respuesta aceptables. Si no existen requisitos suplementarios de disponibilidad, se recomienda agregar, en primer lugar, recursos hardware al primer servidor antes de considerar una solución con varios servidores.

El reparto de carga no supone una capacidad de carga lineal. Si un servidor es capaz de dar servicios a 200 usuarios, dos servidores no tienen por qué, necesariamente, ser capaces de dar servicio a 400 usuarios. Todo va a depender de la naturaleza de la carga y del comportamiento de las sesiones TCP generadas. La noción de afinidad permite conservar a un usuario sobre el mismo nodo mientras dure su interacción. De este modo, se disminuyen los cambios de sesión de usuario sobre los servidores. Para ello, la granja calcula un hash a partir de la dirección IP del cliente y su destino. Si todos los clientes se presentan con la misma dirección IP (por ejemplo, cuando se ubican tras un firewall con reglas NAT), serán redirigidos hacia el mismo servidor, anulando, de este modo, el reparto de carga.

El reparto no se realiza en función de la carga de los servidores. Si algunos usuarios saturan uno de los nodos, seguirá recibiendo el mismo número de usuarios que los demás nodos. Si la carga entre los nodos no es del todo uniforme, deberá desarrollar una rutina encargada de drenar ...