한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › L5 Equipos de red del centro de datos

Timeout por inactividad del balanceador de carga Load balancer idle timeout

ID de la causa dc-lb-idle · Responsable principal Infraestructura de red (Equipo de infraestructura) · También Desarrollo de cliente (Equipo de desarrollo), Desarrollo de servidor (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

El balanceador de carga borra las conexiones inactivas después de cierto tiempo. El juego cree que la conexión sigue abierta, hasta que el jugador sufre una desconexión.

Por qué El jugador no envía ningún paquete durante un rato (ventana de chat abierta, ausente del teclado) → Efecto El balanceador de carga elimina la conexión inactiva (valores por defecto habituales: 60–350 s) → En pantalla Desconexión en el momento en que vuelve a moverse

Síntomas
Desconexión
Factores
Pérdida de paquetes
A quién afecta
Solo yo, Todo el servidor
Cuándo
Tras un rato inactivo
Responsable
Responsable principal Infraestructura de red (Equipo de infraestructura) · También Desarrollo de cliente (Equipo de desarrollo), Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Cliente: enviar heartbeats a intervalos de como mucho la mitad del timeout por inactividad más corto (30 s o menos detrás de un ALB de 60 s), reconectar automáticamente si se corta. Servidor: responder a los heartbeats y cerrar primero la conexión si no llegan durante cierto tiempo, retomar la sesión con un token de sesión.
Tareas (Equipo de infraestructura)
Revisar el timeout por inactividad de cada balanceador de carga de la ruta, compartir los valores con el equipo de desarrollo y ampliarlos si hace falta.
Cifras de referencia
Los valores por defecto son 60 segundos en AWS ALB, 350 segundos para TCP y 120 segundos para UDP en NLB, y 4 minutos para TCP en Azure Load Balancer. Los valores de TCP de ALB y NLB se pueden cambiar, pero los 120 segundos de UDP en NLB no. Al vencer el tiempo, ALB también cierra la conexión del lado del servidor, mientras que NLB la borra en silencio, así que es fácil que el servidor no se entere.
En el gráfico
Desconexión masiva · Desconexiones, tiempo inactivo antes de la desconexión
Dónde mirar
Revisar el timeout por inactividad configurado en cada balanceador de carga de la ruta y reunir, para cada conexión cortada, el tiempo entre su último paquete y la desconexión. En AWS NLB, mirar también TCP_ELB_Reset_Count en CloudWatch (número de RST enviados por el balanceador de carga)
Se confirma si
El tiempo inactivo de las conexiones cortadas se concentra justo después del valor configurado (60 s en ALB, 350 s para TCP en NLB, etc.), y se reproduce al quedarse quieto más tiempo que eso y luego moverse. En NLB, TCP_ELB_Reset_Count sube a esas horas
Se descarta si
Si se corta sin relación con el tiempo inactivo, no es esta causa. Si se concentra cerca de los 350 s en un servidor al que se conecta directamente, sin balanceador de carga, apunta a “Expiración del seguimiento de conexiones en grupos de seguridad de la nube”; si ocurre en el router doméstico del jugador, a “Expiración del mapeo NAT”
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. Edit attributes for your Application Load Balancer AWS
    Timeout por inactividad de ALB: 60 s por defecto (1–4,000 s); si la conexión con el cliente o con el destino pasa ese tiempo en silencio, el balanceador de carga la cierra
  2. Network Load Balancers AWS
    Timeout por inactividad TCP de NLB: 350 s por defecto (60–6,000 s); al vencer, solo deja de seguir la conexión y responde con RST a los datos que lleguen después; los flujos UDP tienen 120 s fijos
  3. Configure load balancer TCP reset and idle timeout Microsoft Azure
    Timeout por inactividad de Azure Load Balancer: 4 minutos por defecto (4–100 minutos); pasado ese tiempo no se garantiza que la sesión se mantenga; el reset de TCP es opcional
  4. CloudWatch metrics for your Network Load Balancer AWS
    TCP_ELB_Reset_Count: número de paquetes RST generados y enviados por el balanceador de carga

Ver también

Misma capa: L5 Equipos de red del centro de datos

Causas de otras capas con el mismo síntoma (Desconexión)

Ver la ficha interactiva con gráficos y simulaciones