ID da causa dk-coredump · Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
Quando o servidor cai, gravar no disco vários GB de memória pode atrasar o reinício em vários minutos.
Por quê Com o crash do servidor, a memória inteira é gravada em arquivo → Efeito Não dá para reiniciar enquanto vários GB são gravados → Na tela Depois da queda do servidor e da desconexão, o jogo não conecta por um bom tempo
Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Avaliar dumps pequenos, só com a memória necessária (minidump), corrigir a causa do crash.
O que fazer (Equipe de infraestrutura)
Limitar o tamanho do dump (configuração de core dump do SO), usar disco rápido, separar o reinício do dump (comprimir e enviar o dump à parte, depois do reinício).
No gráfico
Queda de conexões em massa · Número de conexões, horário de reinício do servidor
Onde olhar
Colocar lado a lado o horário do crash, o tamanho do arquivo core (coredumpctl list e info, ou o arquivo no local indicado por core_pattern), o horário em que o arquivo terminou de ser gravado e o horário em que o serviço voltou, e ver o wkB/s do iostat -x nesse intervalo
Confirma se
Depois do crash, a escrita em disco fica perto do limite enquanto o arquivo core de vários GB é gravado, e o reinício só começa quando a gravação termina
Descarta se
Core dump desligado ou pequeno, mas o reinício demora: etapa de inicialização do servidor, como carregamento de mapas ou cache frio do BD (db-cold-cache)
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Fontes
core(5) — Linux manual pageLinux man-pages RLIMIT_CORE limita o tamanho do arquivo core, coredump_filter escolhe as áreas de memória incluídas, e o core dump pode ser enviado por pipe a um programa e processado à parte
Minidump FilesMicrosoft O minidump guarda só a parte útil das informações do crash dump, para ser rápido e pequeno
coredumpctl(1) — Linux manual pagesystemd list: lista dos core dumps registrados no journal (TIME é o horário do crash informado pelo kernel); info: detalhes de cada dump e tamanho gravado no disco