Comprobaciones de estado del balanceador de carga de DigitalOcean que inundan mis sesiones de CodeIgniter

Comprobaciones de estado del balanceador de carga de DigitalOcean que inundan mis sesiones de CodeIgniter

He estado tratando de resolver esto por un tiempo, pero hasta ahora no he tenido éxito. Después de contactar al soporte de DigitalOcean un par de veces, estoy aún más perdido.

Tengo la siguiente configuración: el dominio apunta a un balanceador de carga DO que está frente a dos droplets de aplicaciones que alojan mi aplicación construida en codeigniter. Una tercera gota tiene mi servidor de base de datos. Los servidores de aplicaciones son PHP7 con php+fpm.

Dado que los droplets de aplicaciones tienen equilibrio de carga, manejo las sesiones en la base de datos, lo que funciona bien desde el punto de vista del usuario.

Las comprobaciones de estado de LB están configuradas para ejecutarse cada 10 segundos en HTTP y el objetivo es una página generada por codeigniter.

Resumen hasta ahora: dado que los controles de salud se realizan cada 10 segundos (6 por minuto) y se dirigen a 2 gotas, esperaría 12 controles de salud por minuto en total. Dado que DO silenciosamente tiene conmutación por error automática, podemos suponer que ese número sería, de hecho, 24 comprobaciones por minuto (si también enviaran comprobaciones desde el LB de conmutación por error), es decir, 1440 por hora. Las comprobaciones "dobles" son en realidad una realidad, ya que mi tabla de sesiones tiene la misma cantidad de tráfico de dos IP distintas y consecutivas en el rango privado.

El problema: en realidad veo exactamente 4 veces la cantidad de sesiones que esperaría de los balanceadores de carga (en lugar de ~1440 por hora, veo cifras consistentes de ~5760 sesiones por hora). DigitalOcean no pudo entenderlo.

La cantidad de sesiones no es un problema real ya que tengo una recolección de basura (a falta de un nombre mejor) que borra las sesiones vacías varias veces al día para mantener la mesa pequeña, pero esto me desconcierta. Sé que podría espaciar un poco las comprobaciones de estado o apuntar las comprobaciones a una URL que no inicia la biblioteca del controlador de sesiones, pero ambas mitigaciones frustran el propósito.

¿Alguien ha visto un comportamiento como este? ¿Algunas ideas? He estado persiguiendo esto durante aproximadamente un mes.

Respuesta1

Sin un conocimiento detallado del funcionamiento interno del balanceador de carga:

Sospecho que los controles de salud se ejecutan en nombre de cada punto de entrada, cada servicio definido en el balanceador de carga.

Si tiene un punto de entrada HTTP y HTTPS que van al mismo back-end, eso dará como resultado dos controles de estado individuales, lo que duplicará la cantidad de solicitudes que ve.

información relacionada