Para poupar a CPU, a NIC junta pacotes e avisa uma vez só por lote. Os pacotes chegam atrasados pelo tempo gasto juntando.
Por quê A NIC junta pacotes por um certo tempo ou quantidade antes de gerar a interrupção → Efeito Os pacotes esperam enquanto o lote se forma → Na tela Leve aumento de latência. Normalmente pequeno, mas na casa dos ms se exagerado
Responsável principal Infraestrutura de servidores (Equipe de infraestrutura)
O que fazer (Equipe de infraestrutura)
Usar coalescência adaptativa, ajustar os valores para servidores de jogo (ethtool -C).
Números de referência
Normalmente de dezenas a centenas de µs. Em jogos, em geral isso é desprezível, mas uma configuração exagerada pode chegar à casa dos ms.
No gráfico
Sempre alto desde o início · Tempo de ida e volta dentro do mesmo data center
Onde olhar
Ver a configuração atual de coalescência (adaptive-rx, rx-usecs, rx-frames) com ethtool -c e comparar o tempo de ida e volta do ping até outro servidor do mesmo data center antes e depois de mudar a configuração
Confirma se
rx-usecs está alto (centenas de µs ou mais), e reduzir o valor diminui na mesma medida o tempo de ida e volta dentro do data center
Descarta se
O tempo de ida e volta não muda depois de reduzir: não é esta causa
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Fontes
Linux Driver for Intel(R) Ethernet Network Connection (e1000e)Linux kernel O padrão é a moderação adaptativa de interrupções, com 4.000–20.000 interrupções por segundo (intervalos de 50–250 µs); menos interrupções economizam CPU, mas aumentam a latência