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

Guia do Lag em Jogos › L6 Placa de rede do servidor

Coalescência de interrupções excessiva Interrupt coalescing

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

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

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

Sintomas
Input lag
Fatores
Latência
Quem é afetado
Servidor inteiro
Quando
Sempre
Responsável
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

  1. 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
  2. Linux Base Driver for Intel(R) Ethernet Network Connection (e1000) Linux kernel
    RxIntDelay pode atrasar as interrupções de recepção em unidades de 1,024 µs até 65.535 (cerca de 67 ms), e valores maiores aumentam a latência de recepção
  3. ethtool(8) — Linux manual page ethtool
    Configurações adaptive-rx, rx-usecs e rx-frames do ethtool -C

Veja também

Mesma camada: L6 Placa de rede do servidor

Mesmo sintoma (Input lag) em outras camadas

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