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

Libro blanco del lag en juegos › L7 SO del servidor (kernel)

Tareas programadas Cron jobs (log rotation, backup, scans)

ID de la causa so-cron · Responsable principal Infraestructura de servidores (Equipo de infraestructura)

Abrir la ficha interactiva con gráficos y simulaciones →

La compresión de logs, las copias de seguridad y los análisis de seguridad que se ejecutan todos los días a la misma hora ocupan la CPU y el disco.

Por qué Una tarea del SO se ejecuta a una hora fijada → Efecto Comparte la CPU y el disco con el servidor del juego → En pantalla Tirones y cámara lenta a una hora fija, por ejemplo todos los días a las 4 de la madrugada

Síntomas
Tirones, Cámara lenta
Factores
Detención
A quién afecta
Todo el servidor
Cuándo
A intervalos regulares
Responsable
Responsable principal Infraestructura de servidores (Equipo de infraestructura)
Tareas (Equipo de infraestructura)
Repartir las horas de las tareas, bajarles la prioridad (nice, ionice), separarlas del servidor del juego (ejecutarlas en otro servidor).
En el gráfico
Picos periódicos · Uso de CPU, cola del disco, tiempo de tick del servidor
Dónde mirar
Horas de ejecución de las tareas programadas con crontab y systemctl list-timers; en los picos de tick, qué procesos usan CPU y disco con pidstat -u -d
Se confirma si
El tick tiene picos todos los días (o cada hora) a la misma hora, y en ese momento el proceso de una tarea programada ocupa la CPU y el disco
Se descarta si
Si los picos no coinciden con una hora fija diaria, no es esta causa. Si se repiten cada pocos segundos o minutos: “Pausa stop-the-world del GC en el servidor”, “Temporizadores que se disparan todos a la vez”
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. ionice(1) — Linux manual page util-linux
    Las tareas de la clase idle solo reciben E/S cuando ningún otro programa usa el disco
  2. systemd.timer(5) — Linux manual page systemd
    RandomizedDelaySec retrasa al azar la hora de las tareas programadas para evitar que la carga se concentre
  3. systemctl(1) — Linux manual page systemd
    list-timers: muestra las unidades timer ordenadas por su próxima ejecución
  4. pidstat(1) — Linux manual page sysstat
    -u muestra la CPU y -d la E/S de disco por proceso

Ver también

Misma capa: L7 SO del servidor (kernel)

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

Ver la ficha interactiva con gráficos y simulaciones