Reequilibrio de sesiones en Relianoid con persistencia de sesión basada en inserción de cookies

Ver Categorías

Reequilibrio de sesiones en Relianoid con persistencia de sesión basada en inserción de cookies

Problema #

Un usuario informa que está utilizando Relianoid para equilibrar la carga con persistencia de sesión basada en la inserción de cookies. Inicialmente, la configuración estaba perfectamente equilibrada con cinco servidores. Sin embargo, después de agregar un nuevo servidor al grupo, las sesiones no se distribuyen como se esperaba. El nuevo servidor solo tiene algunas sesiones, mientras que los servidores existentes continúan manejando la mayor parte del tráfico.

Explicación #

Este problema surge debido al mecanismo de persistencia de la sesión actual y al algoritmo de equilibrio de carga en uso.

Entendiendo el problema #

1. Persistencia de sesión basada en la inserción de cookies : Al usar la inserción de cookies para la persistencia de sesión, el balanceador de carga asigna una cookie única a cada cliente. Esta cookie dirige las solicitudes posteriores del mismo cliente al mismo servidor backend, lo que garantiza la persistencia de la sesión. Esto funciona bien en una configuración estable, pero genera problemas cuando se agrega un nuevo servidor al grupo.

2. Las sesiones existentes se mantienen activas : Dado que las sesiones ya están establecidas con el conjunto inicial de servidores, estas sesiones existentes permanecen activas con sus servidores backend originales gracias a la cookie de persistencia. Por consiguiente, el servidor recién agregado solo recibe nuevas sesiones o tráfico de clientes nuevos a los que aún no se les ha asignado una cookie de persistencia.

3. Limitaciones de los algoritmos de planificación actuales : Muchos balanceadores de carga utilizan un algoritmo de planificación predeterminado como Round Robin o Least Response Time (LRT). Estos algoritmos no necesariamente reequilibran la carga cuando se agregan nuevos servidores, especialmente cuando se trata de persistencia de sesión. Esto se debe a que los algoritmos tienden a mantener las conexiones con los servidores backend existentes para las sesiones activas.

Reequilibrio de la sesión de cookies

¿Por qué no se reequilibran las sesiones? #

Cuando se agrega un nuevo servidor, no comienza inmediatamente a compartir la carga de manera equitativa porque:

  • Las sesiones existentes están vinculadas a sus backends originales.
  • El algoritmo de programación predeterminado no prioriza los backends con menos sesiones o conexiones.

Para lograr una distribución justa de sesiones, se necesita un algoritmo de equilibrio de carga diferente.

Solución #

Utilice el algoritmo de programación de “menor número de conexiones” #

El algoritmo de menor cantidad de conexiones es un método de programación en el que el balanceador de carga selecciona el servidor backend con la menor cantidad de conexiones activas. Este enfoque ayuda a distribuir las sesiones de manera más uniforme, especialmente cuando se agrega un nuevo servidor al grupo.

Esta es la razón por la que el método “Mínimas conexiones” funciona de manera eficaz en este escenario:

  • Reequilibrio dinámico: a diferencia de algoritmos como Round Robin, Least Connections evalúa constantemente qué servidor tiene menos sesiones activas. Esto permite que el nuevo servidor, que inicialmente tiene menos sesiones, reciba más conexiones nuevas hasta que la carga se equilibre.
  • Mejor utilización de recursos: a medida que se creen nuevas sesiones, se dirigirán al servidor con menos carga, lo que mejorará la utilización general de los recursos.

Pasos para implementar el algoritmo de “Mínimas conexiones” en Relianoid #

1. Acceda a la configuración del balanceador de carga Relianoid:Inicie sesión en su consola de administración de Relianoid o utilice las herramientas CLI si corresponde.
2. Vaya a la configuración del balanceador de carga:Ubique la configuración de su instancia de balanceador de carga que administra el grupo de servidores con persistencia de sesión.
3. Modificar el algoritmo de programación:

  • Busque la configuración del algoritmo de equilibrio de carga o el método de programación.
  • Cambie el algoritmo de la configuración actual (por ejemplo, Round Robin) a Conexiones mínimas.

4. Guardar y aplicar cambios:Asegúrese de guardar los cambios y aplicarlos a la configuración del balanceador de carga. Según su entorno, esto podría requerir reiniciar el balanceador de carga o realizar una recarga suave.
5. Supervisar y verificar:Después de aplicar los cambios, controle la distribución de sesiones en todos los servidores. Con el tiempo, el nuevo servidor debería comenzar a recibir más sesiones, lo que generará una carga más equilibrada.

Conclusión #

Al cambiar el algoritmo de equilibrio de carga a “Menos conexiones”, se garantiza que el servidor recién agregado pueda ponerse al día y comenzar a manejar más sesiones. Este método de programación dinámica considera la cantidad de conexiones activas y distribuye la carga de manera eficiente, lo que resuelve el problema de desequilibrio causado por la persistencia de la sesión con la inserción de cookies.

Si continúa teniendo problemas después de implementar este cambio, considere verificar:

  • La salud y el rendimiento del servidor recién agregado.
  • La configuración de otros parámetros que podrían afectar el equilibrio de carga (por ejemplo, configuraciones de tiempo de espera de sesión, duración de permanencia, etc.).
  • Registros a nivel de red o de aplicación para detectar posibles errores o cuellos de botella.

Si sigue estos pasos, podrá optimizar la configuración de su balanceador de carga para garantizar una distribución de sesiones justa y equilibrada entre todos los servidores de su grupo.

📄 Descarga este documento en formato PDF #

    EMAIL: *

    Desarrollado por BetterDocs