ID da causa dc-microburst · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Infraestrutura de rede (Equipe de infraestrutura), Infraestrutura de servidores (Equipe de infraestrutura)
Quando vários servidores mandam pacotes para milhares de jogadores no mesmo instante, o buffer pequeno da porta do switch onde esse tráfego converge transborda em menos de 1 ms.
Por quê Spawn de world boss ou skills em massa, ou ticks de vários servidores coincidindo e enviando tudo de uma vez → Efeito Os buffers onde várias portas convergem para uma, ou onde uma porta rápida alimenta uma mais lenta (de centenas de KB a alguns MB por porta), enchem num instante → Na tela Parte dos pacotes descartada; muitos jogadores com teleporte ou skills que não saem, ao mesmo tempo
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Infraestrutura de rede (Equipe de infraestrutura), Infraestrutura de servidores (Equipe de infraestrutura)
O que fazer (Equipe de desenvolvimento)
Distribuir o envio de forma uniforme dentro do tick (pacing), defasar um pouco o início do tick de cada servidor.
O que fazer (Equipe de infraestrutura)
Rede: usar switches com buffers maiores, distribuir o tráfego (espalhar os servidores por vários switches e portas), monitorar os contadores de descarte por porta do switch. Servidores/SO: limitar a taxa total de envio de cada servidor (shaper tc do Linux).
Números de referência
Uma porta de 10 Gbps envia cerca de 1,25 MB em 1 ms. Se o tráfego de duas portas converge para uma ao mesmo tempo, acumulam-se 1,25 MB a cada 1 ms. Mesmo com utilização média de 10% em 1 segundo, a porta pode transbordar na escala de 1 ms.
No gráfico
Sobe com a carga · Descartes de saída na porta do switch
Onde olhar
Coletar, no menor intervalo possível, os contadores de descarte de saída (ifOutDiscards, ou output drops conforme o equipamento) das portas do switch ligadas aos servidores e das portas onde esse tráfego converge, e comparar com os horários de spawn de boss e de grandes batalhas. Gráficos de utilização média de 1 segundo ou 1 minuto não mostram isso
Confirma se
A utilização média é baixa, mas os descartes de saída aumentam toda vez que muita gente se junta em um lugar, e nesses momentos vários jogadores reportam teleporte e skills que não saem, ao mesmo tempo
Descarta se
Os descartes aumentam de forma constante nos horários de utilização média alta: “Saturação do link do data center”. Os erros de entrada (CRC) aumentam: “Cabo com defeito ou erros na porta”
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Data Center TCP (DCTCP) (SIGCOMM 2010)ACM Switches comuns têm buffers rasos (48 portas compartilham 4 MB, e uma porta usa até cerca de 700 KB); há perda quando vários fluxos convergem para uma porta por um breve instante
RFC 2863: The Interfaces Group MIBIETF ifOutDiscards: número de pacotes descartados sem envio mesmo sem erro, por motivos como liberar espaço no buffer
Veja também
Mesma camada: L5 Equipamentos de rede do data center