Optimización de la configuración del tiempo de ejecución del servidor de juegos en Amazon GameLift Servers administrado
Puede establecer la configuración del tiempo de ejecución de una flota de EC2 administrada para que ejecute varios procesos de servidor de juegos por instancia. De esa manera, se utilizan sus recursos de alojamiento de manera más eficiente.
Modo en que una flota administra varios procesos
Amazon GameLift Servers utiliza la configuración del tiempo de ejecución de una flota para determinar el tipo y el número de procesos que se deben ejecutar en cada instancia. Una configuración de tiempo de ejecución contiene al menos una configuración de proceso de servidor que representa un archivo ejecutable de servidor de juegos. Puede definir configuraciones de procesos de servidor adicionales para ejecutar otros tipos de procesos relacionados con el juego. Cada configuración del proceso del servidor contiene la siguiente información:
-
El nombre de archivo y la ruta de acceso de un ejecutable de la compilación del juego.
-
(Opcional) Los parámetros que se pasan al proceso del servidor durante el lanzamiento
-
El número de procesos que se van a ejecutar al mismo tiempo.
Cuando se activa una instancia de la flota, lanza inmediatamente el conjunto de procesos del servidor definidos en la configuración del tiempo de ejecución. Con varios procesos, Amazon GameLift Servers escalona el lanzamiento de cada proceso. Los procesos del servidor tienen una vida útil limitada. A medida que finalizan, Amazon GameLift Servers lanza nuevos procesos para mantener el número y el tipo de procesos del servidor definidos en la configuración del tiempo de ejecución.
Puede cambiar la configuración del entorno de tiempo de ejecución de una flota en cualquier momento agregando, modificando o eliminando configuraciones de procesos del servidor. Cada instancia comprueba periódicamente si hay actualizaciones en la configuración del tiempo de ejecución de la flota para implementar los cambios. A continuación se muestra cómo Amazon GameLift Servers realiza cambios en la configuración del entorno de tiempo de ejecución:
-
La instancia envía una solicitud a Amazon GameLift Servers para obtener la versión más reciente de la configuración del tiempo de ejecución.
-
La instancia compara sus procesos activos con la configuración del tiempo de ejecución más reciente y, a continuación, realiza el siguiente procedimiento:
-
Si la configuración del tiempo de ejecución actualizada elimina un tipo de proceso del servidor, los procesos activos del servidor de ese tipo continúan ejecutándose hasta que terminan. La instancia no reemplaza esos procesos del servidor.
-
Si la configuración del tiempo de ejecución actualizada reduce el número de procesos simultáneos para un tipo de proceso del servidor: los procesos del servidor sobrantes de ese tipo continúan ejecutándose hasta que terminan. La instancia no reemplaza esos procesos del servidor sobrantes.
-
Si la configuración del tiempo de ejecución actualizada añade un nuevo tipo de proceso del servidor o aumenta los procesos simultáneos para un tipo existente, la instancia inicia los nuevos procesos del servidor hasta el número máximo de procesos de Amazon GameLift Servers. En este caso, la instancia lanza nuevos procesos del servidor cuando los procesos existentes finalizan.
-
Optimización de una flota para varios procesos
Para utilizar varios procesos en una flota, realice el siguiente procedimiento:
-
Cree una compilación que contenga los archivos ejecutables del servidor de juegos que desea implementar en una flota y, a continuación, cargue la compilación en Amazon GameLift Servers. Todos los servidores de juegos de una compilación deben ejecutarse en la misma plataforma y utilizar el SDK del servidor de Amazon GameLift Servers.
-
Cree una configuración de tiempo de ejecución con una o varias configuraciones del proceso del servidor y múltiples procesos simultáneos.
-
Integre los clientes de juegos con la versión 2016-08-04 o posterior del SDK de AWS.
Para optimizar el rendimiento de la flota, le recomendamos que realice las siguientes acciones:
-
Gestione los escenarios de cierre de procesos del servidor para asegurarse de que Amazon GameLift Servers pueda reciclar los procesos de manera eficiente. Por ejemplo:
-
Añadir un procedimiento de cierre al código del servidor de juegos que llame a la API del servidor
ProcessEnding(). -
Implemente la función de devolución de llamada
OnProcessTerminate()en el código del servidor de juegos para tramitar correctamente las solicitudes de finalización de Amazon GameLift Servers.
-
-
Asegúrese de que Amazon GameLift Servers cierre y vuelva a lanzar los procesos del servidor cuyo estado sea defectuoso. Informe del estado a Amazon GameLift Servers implementando la función de devolución de llamada
OnHealthCheck()en el código del servidor de juegos. Amazon GameLift Servers cierra automáticamente los procesos del servidor que hayan devuelto un estado defectuoso en tres informes consecutivos. Si no implementaOnHealthCheck(), Amazon GameLift Servers presupone que un proceso de servidor está en buen estado, a menos que el proceso no responda a una comunicación.
Elección del número de procesos por instancia
Al decidir el número de procesos simultáneos que se van a ejecutar en una instancia, tenga en cuenta los siguientes aspectos:
-
Amazon GameLift Servers limita cada instancia a un número máximo de procesos simultáneos. La suma de todos los procesos simultáneos de las configuraciones de procesos de los servidores de una flota no puede superar esa cuota.
-
Para mantener niveles de rendimiento aceptables, el tipo de instancia de Amazon EC2 puede limitar el número de procesos que pueden ejecutarse de forma simultánea Pruebe diferentes configuraciones del juego para encontrar el número correcto de procesos del tipo de instancia preferido.
-
Amazon GameLift Servers no ejecuta más procesos simultáneos que el número total configurado. Esto significa que la transición de la configuración del tiempo de ejecución anterior a la nueva configuración podría producirse de forma gradual.