As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Otimize a configuração de runtime do servidor de jogos no Amazon GameLift Servers gerenciado
Você pode definir a configuração de tempo de execução de uma EC2 frota gerenciada para executar vários processos de servidor de jogos por instância. Isso usa os recursos de hospedagem com mais eficiência.
Como uma frota gerencia vários processos
O Amazon GameLift Servers usa a configuração de runtime de uma frota para determinar o tipo e o número de processos a serem executados em cada instância. Uma configuração de runtime contém pelo menos uma configuração de processo do servidor que representa um executável do servidor de jogos. É possível definir configurações adicionais do processo do servidor para executar outros tipos de processos relacionados ao seu jogo. Cada configuração do processo do servidor contém as seguintes informações:
-
O nome do arquivo e o caminho de um executável na compilação do seu jogo.
-
(Opcional) Parâmetros a serem passados para o processo na inicialização
-
O número de processos a serem executados simultaneamente.
Quando uma instância na frota é ativada, ela inicia o conjunto de processos do servidor definido na configuração do runtime. Com vários processos, o Amazon GameLift Servers escalona a inicialização de cada processo. Os processos do servidor têm uma vida útil limitada. Ao final, o Amazon GameLift Servers lança inicia novos processos para manter o número e o tipo de processos do servidor definidos na configuração do runtime.
É possível alterar a configuração de runtime a qualquer momento adicionando, alterando ou removendo as configurações de processo do servidor. Cada instância verifica regularmente se há atualizações na configuração de runtime da frota, para implementar as alterações. Veja a seguir como o Amazon GameLift Servers adota as alterações de configuração de runtime:
-
A instância envia uma solicitação ao Amazon GameLift Servers para obter a versão mais recente da configuração de runtime.
-
A instância compara os processos ativos com a configuração de runtime mais recente e, em seguida, faz o seguinte:
-
Se a configuração atualizada do runtime remover um tipo de processo de servidor, os processos de servidor ativos desse tipo continuarão em execução até concluírem. A instância não substitui esses processos do servidor.
-
Se a configuração atualizada do runtime diminuir o número de processos simultâneos para um tipo de processo de servidor, os processos de servidor em excesso desse tipo continuarão em execução até terminarem. A instância não substitui esses processos excessivos do servidor.
-
Se a configuração atualizada do runtime adicionar um novo tipo de processo de servidor ou aumentar os processos simultâneos para um tipo existente, a instância iniciará novos processos de servidor, até o limite do Amazon GameLift Servers. Nesse caso, a instância inicia novos processos de servidor quando os processos existentes são concluídos.
-
Otimize uma frota para vários processos
Para usar vários processos em uma frota, faça o seguinte:
-
Crie uma compilação que contenha os executáveis do servidor de jogos a serem implantados em uma frota e, em seguida, carregue a compilação no Amazon GameLift Servers. Todos os servidores de jogos em uma compilação devem ser executados na mesma plataforma e usar o Server SDK do Amazon GameLift Servers.
-
Crie uma configuração de runtime com uma ou mais configurações de processo de servidor e vários processos simultâneos.
-
Integre clientes de jogos com a versão do AWS SDK 2016-08-04 ou posterior.
Para otimizar o desempenho da frota, é recomendável fazer o seguinte:
-
Processe cenários de desligamento do processo de servidor para que o Amazon GameLift Servers possa reciclar processos de maneira eficiente. Por exemplo:
-
Adicione um procedimento de encerramento ao código do servidor de jogos que chama a API de servidor de
ProcessEnding(). -
Implemente a função de retorno de chamada
OnProcessTerminate()no código do servidor de jogos para processar as solicitações de encerramento do Amazon GameLift Servers.
-
-
Garanta que o Amazon GameLift Servers desligue e reinicie processos de servidor não íntegros. Relate o status de integridade de volta ao Amazon GameLift Servers, implementando a função de retorno de chamada
OnHealthCheck()no código do servidor de jogos. O Amazon GameLift Servers desliga automaticamente processos de servidor reconhecidamente não íntegros por três relatórios consecutivos. Se você não implementarOnHealthCheck(), então o Amazon GameLift Servers assumirá que um processo de servidor está íntegro, a menos que o processo não responda a uma comunicação.
Escolha o número de processos por instância
Ao decidir em relação ao número de processos simultâneos a serem executados em uma instância, lembre-se do seguinte:
-
O Amazon GameLift Servers limita cada instância a um número máximo de processos simultâneos. A soma de todos os processos simultâneos das configurações de processos do servidor de uma frota não pode exceder essa cota.
-
Para manter níveis de desempenho aceitáveis, o tipo de EC2 instância da Amazon pode limitar o número de processos que podem ser executados simultaneamente. Teste diferentes configurações para o jogo a fim de encontrar o número certo de processos para o tipo de instância preferido.
-
O Amazon GameLift Servers não executa mais processos simultâneos do que o número total configurado. Isso significa que a transição da configuração de runtime anterior para a nova configuração pode ocorrer gradualmente.