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

Guia do Lag em Jogos › L7 SO do servidor (kernel)

Tarefas agendadas Cron jobs (log rotation, backup, scans)

ID da causa so-cron · Responsável principal Infraestrutura de servidores (Equipe de infraestrutura)

Abrir o card interativo, com figuras e simulações →

Compressão de logs, backups e varreduras de segurança que rodam todo dia no mesmo horário ocupam CPU e disco.

Por quê Tarefas do SO rodam em horários fixos → Efeito Dividem CPU e disco com o servidor do jogo → Na tela Engasgos e câmera lenta em horários fixos, como todo dia às 4h da madrugada

Sintomas
Engasgos, Câmera lenta
Fatores
Paralisação
Quem é afetado
Servidor inteiro
Quando
Em intervalos regulares
Responsável
Responsável principal Infraestrutura de servidores (Equipe de infraestrutura)
O que fazer (Equipe de infraestrutura)
Espalhar os horários das tarefas, baixar a prioridade (nice, ionice), separar do servidor do jogo (rodar em outro servidor).
No gráfico
Picos em intervalos regulares · Uso de CPU, fila do disco, tempo de tick do servidor
Onde olhar
Levantar os horários das tarefas agendadas com crontab e systemctl list-timers, e ver com pidstat -u -d qual processo usa CPU e disco no momento do pico de tick
Confirma se
O tick dá pico todo dia (ou toda hora) no mesmo horário, e nesse horário um processo de tarefa agendada ocupa CPU e disco
Descarta se
Picos que não caem no mesmo horário todo dia: não é esta causa. Picos a cada alguns segundos ou minutos: “Pausa stop-the-world do GC no servidor”, “Timers disparando todos ao mesmo tempo”
Como verificar
Ferramentas de infra (sem precisar do código do jogo)

Fontes

  1. ionice(1) — Linux manual page util-linux
    Tarefas da classe idle só recebem I/O quando nenhum outro programa está usando o disco
  2. systemd.timer(5) — Linux manual page systemd
    RandomizedDelaySec atrasa aleatoriamente o horário das tarefas agendadas para espalhar a carga
  3. systemctl(1) — Linux manual page systemd
    list-timers: mostra as unidades de timer na ordem do próximo horário de execução
  4. pidstat(1) — Linux manual page sysstat
    -u mostra a CPU e -d o I/O de disco, por processo

Veja também

Mesma camada: L7 SO do servidor (kernel)

Mesmo sintoma (Engasgos) em outras camadas

Ver o card interativo, com figuras e simulações