Tabela do conntrack cheia no servidor conntrack table full
ID da causa so-conntrack · Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento), Desenvolvimento do cliente (Equipe de desenvolvimento)
Quando a tabela de rastreamento de conexões (conntrack), em que o firewall do Linux registra todas as conexões, chega ao limite, os pacotes novos são descartados.
Por quê Pico de conexões e conexões curtas repetidas fazem crescer os registros de conexão → Efeito A tabela enche, e conexões novas e alguns pacotes são descartados → Na tela Não conecta, teleporte por perda sem causa aparente
Logo após login ou manutenção, Quando junta muita gente
Responsável
Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento), Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Servidor: reduzir conexões curtas (reutilizar conexões nas chamadas entre servidores). Cliente: quando a conexão falhar ou cair, aumentar progressivamente o intervalo entre novas tentativas e espalhá-las aleatoriamente.
O que fazer (Equipe de infraestrutura)
Aumentar o tamanho da tabela (nf_conntrack_max), tirar as portas do jogo do rastreamento (NOTRACK na tabela raw), alertar sobre o uso.
Números de referência
O limite padrão fica entre cerca de 60 mil e 260 mil entradas, conforme a memória do servidor. Quando transborda, o log do kernel mostra “nf_conntrack: table full, dropping packet”.
No gráfico
Achata ao bater no limite · Entradas do conntrack (nf_conntrack_count)
Onde olhar
Pôr net.netfilter.nf_conntrack_count (entradas atuais) do sysctl no mesmo gráfico que nf_conntrack_max e procurar “nf_conntrack: table full, dropping packet” no dmesg
Confirma se
nf_conntrack_count achata no max, e a partir desse momento o log do kernel mostra table full
Descarta se
Entradas bem abaixo do max: não é esta causa. O limite de rastreamento de conexões da própria instância AWS aparece como conntrack_allowance_exceeded, em “Limite de PPS da nuvem excedido”
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Fontes
Netfilter Conntrack Sysfs variablesLinux kernel O padrão de nf_conntrack_max é igual ao número de buckets do hash (nf_conntrack_buckets), que é definido pelo tamanho da memória
net/netfilter/nf_conntrack_core.c (Linux v6.12)Linux kernel Tamanho padrão de 65.536 com mais de 1 GB de memória e de 262.144 com mais de 4 GB (64 bits); quando enche, registra “nf_conntrack: table full, dropping packet” e descarta