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

Libro blanco del lag en juegos › L13 Arquitectura y operación de servidores

Sobrecarga por logs y monitoreo Logging / monitoring overhead

ID de la causa in-monitoring · Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Infraestructura de servidores (Equipo de infraestructura)

Abrir la ficha interactiva con gráficos y simulaciones →

Cuando hay un incidente, los logs se disparan, y los servidores que envían sus logs de forma síncrona se vuelven todavía más lentos por culpa de esos logs.

Por qué Al aparecer errores, se dispara el volumen de logs y métricas enviados → Efecto El recolector de logs se atrasa y los servidores que envían de forma síncrona se quedan esperando → En pantalla Durante el incidente, los tirones y congelamientos empeoran por culpa de los logs

Síntomas
Tirones, Congelamiento
Factores
Detención
A quién afecta
Todo el servidor
Cuándo
Cuando se junta mucha gente, De vez en cuando, al azar
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Infraestructura de servidores (Equipo de infraestructura)
Tareas (Equipo de desarrollo)
Enviar de forma asíncrona, usar muestreo, descartar cuando se llene el búfer, agrupar los logs del mismo error antes de enviarlos.
Tareas (Equipo de infraestructura)
Dimensionar el recolector de logs para el volumen pico de un incidente, poner alertas de acumulación en el recolector.
En el gráfico
Picos aleatorios · Volumen de logs enviados, cola del recolector de logs
Dónde mirar
Líneas y bytes de log por segundo del servidor, cola y descartes del agente recolector de logs, junto con el tiempo de tick. Si hay hilos detenidos, ver con bcc offcputime -p si esperan al escribir o enviar logs
Se confirma si
Cuando el tick se dispara, el volumen de logs sube a decenas de veces lo normal, y el tiempo de espera del hilo del juego se concentra en las pilas de llamadas de escritura o envío de logs
Se descarta si
Si el volumen de logs es el normal o el hilo del juego no espera en los logs, la avalancha de logs es solo una consecuencia del incidente; buscar aparte la causa del primer error
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. Logging in C# Microsoft
    Los métodos de log de .NET son síncronos, así que si el almacenamiento es lento se recomienda escribir primero en uno rápido y moverlos después
  2. Asynchronous loggers Apache Software Foundation
    El logging asíncrono absorbe las ráfagas cortas con una cola, pero si la salida sigue lenta, la cola se llena y todo baja a la velocidad de la salida más lenta, o se descartan logs según la política (Discard)
  3. Demonstrations of offcputime, the Linux eBPF/bcc version IO Visor
    Suma, por pila de llamadas, el tiempo que los hilos pasan detenidos fuera de la CPU (off-CPU); -p indica el proceso

Ver también

Misma capa: L13 Arquitectura y operación de servidores

Causas de otras capas con el mismo síntoma (Tirones)

Ver la ficha interactiva con gráficos y simulaciones