GAMEPERF04-BP01 Monitor game server processes to detect issues
You might run multiple game server processes per instance to efficiently utilize the resources on your game server instances. If so, design your architecture so that an individual game server process hosting a game session cannot cause adverse impact to other game sessions hosted on the same instance. Use metrics to understand how game placement and game mode type can impact the performance of game server instances. Incorporate a mix of low load (lobby, shop, or single player tutorial) and high load (ranked, multi-player, or high skill gameplay) processes to avoid hot spotting the game server instance.
Level of risk exposed if this best practice is not established: High
Implementation guidance
Monitor the player experience through client side and server-side
metrics by collecting telemetry for ping time and jitter, frame
drops, API response time, errors and successful game loop
completion. Correlate time stamps for these events with player
support issues and server logs to identify performance
bottlenecks. Tools like
Dtrace
Implement monitoring of the limited resources available to your game server instances so that you can generate alerts when individual game server processes are breaching pre-determined resource budget thresholds. When thresholds are breached, you may want to configure your game server software to dump relevant system and game server logs out to durable storage, such as a central logging solution, so that your game server engineers can investigate this behavior. Additionally, your game server instance should be configured to report metrics from each of the game server processes running on the instance so that you can monitor these individual game server processes in addition to the overall metrics for the game server instance.
For example, GameLift provides metrics for
monitoring
game sessions, which can be augmented with custom
game-specific metrics and logs collected using the
Amazon CloudWatch
Agent
which you can configure on your game server instance. Your metrics
can be viewed in CloudWatch or exported to other tools such as
Amazon Managed Grafana
Implementation steps
-
Run multiple game server processes per instance and mix low and high-load game modes to avoid hot spotting and verify balanced resource utilization.
-
Monitor client-side and server-side metrics like ping, jitter, frame drops, and API response times, and correlate these with server logs and issues reported by players to identify bottlenecks.
-
Configure resource monitoring for each game server process, generate alerts for threshold breaches, and store logs in durable storage for analysis using tools like CloudWatch and Amazon Managed Grafana.