ID da causa in-autoscale · Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
Quando o número de jogadores dispara, novos servidores sobem automaticamente, mas a preparação leva alguns minutos, e nesse meio-tempo os servidores existentes ficam sobrecarregados.
Por quê O começo de um evento faz as conexões dispararem → Efeito Alguns minutos até o novo servidor ligar e ficar pronto → Na tela Nos primeiros minutos após o início do evento, câmera lenta e jogadores que não conectam
Quando junta muita gente, Logo após login ou manutenção
Responsável
Responsável principal Infraestrutura de servidores (Equipe de infraestrutura) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Distribuir os jogadores entre canais (quem já está em um canal lotado não pode ser movido para o novo servidor), reduzir o tempo de inicialização e de carregamento de dados do novo servidor.
O que fazer (Equipe de infraestrutura)
Escalar antes do evento, manter servidores reserva já aquecidos, ao reduzir só desligar depois que os jogadores restantes saírem.
Números de referência
De 1 a alguns minutos para detectar a carga (porque a métrica é uma média de alguns minutos), e mais alguns minutos para ligar o novo servidor, ler os dados do jogo e encher o cache.
No gráfico
Pico logo após abrir ou manutenção · Número de instâncias, uso de CPU, fila de login
Onde olhar
Registro de atividades do autoscaling (quando decidiu escalar, quando a nova instância entrou em serviço) sobreposto aos gráficos de uso de CPU e de conexões. Na AWS, as métricas do grupo do Auto Scaling (só aparecem se ativadas) GroupDesiredCapacity (capacidade desejada), GroupPendingInstances (em preparação) e GroupInServiceInstances (em serviço)
Confirma se
Depois do pico de conexões, por alguns minutos só sobem a capacidade desejada e as instâncias em preparação, enquanto a CPU dos servidores existentes fica encostada no limite; a situação se normaliza quando as instâncias em serviço aumentam
Descarta se
Continua lento mesmo depois de as novas instâncias entrarem: aponta para causa fora do número de servidores (recurso compartilhado como o BD, falha em cascata)
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Saiba mais
O autoscaling é usado principalmente onde basta mandar jogadores novos para servidores novos, como login, gateway e dungeons. Reduzir também dá problema. Se, de madrugada, com menos gente, os servidores são desligados sem esperar os jogadores restantes saírem, esses jogadores são desconectados.
Target tracking scaling policies for Amazon EC2 Auto ScalingAWS As métricas básicas do EC2 têm intervalo de 5 minutos (1 minuto com o monitoramento detalhado ativado); para reagir rápido, recomenda-se usar métricas com intervalo de 1 minuto ou menos
Amazon CloudWatch metrics for Amazon EC2 Auto ScalingAWS As métricas de grupo só são publicadas, a cada minuto, se forem ativadas: GroupDesiredCapacity (quantidade que o grupo tenta manter), GroupPendingInstances (instâncias que ainda não entraram em serviço) e GroupInServiceInstances (instâncias em serviço)