I have been experimenting recently with auto-scaling in GameLift using a target tracking policy, and I have come across a few things that I have questions on.
When there are zero active game sessions on the fleet and the minimum instance count on the fleet is zero, the fleet scales down to zero instances. Why is this? And do I need to have a minimum instance count of at least 1 instance for auto scalilng to work? It seems to be that way after reading this forum post, Auto scaling from zero capacity?, but I just wanted to confirm.
When does the upscaling take effect? The reason I ask is that when the percentage of game sessions is lower than the buffer percentage, it takes about 10-15 minutes for a new instance or multiple instances to start up for the percentage of game session availability to go back up. Are the dashboard metrics delayed or does it actually take this long for the number of instances to scale up? And do the new instances start spinning up right when the game session availability percentage drops down below the buffer for the auto scaling policy? Or is there more involved?
When does the downscaling take effect? Similarly to the last question, it also takes about 15 minutes for idle instances to shut down when the percentage of game session availability is “too high”. I ask the same question as before here: are the dashboard metrics delayed or does it actually take this long for the number of instances to scale down? Also, how exactly does GameLift know when to scale the number of instances in a fleet down when target tracking is implemented? Does GameLift constantly check whether the percentage of game session availability will still be above the buffer if a certain instance or certain instances shut down? Or is there more involved?
Lastly, if it truly does take a while for the number of instances to scale up and down within a fleet, what can we do to best reduce player wait times? Should we try to avoid shutting down server processes and rather try to reuse them after terminating a game session? Should we increase the number of concurrent server processes running in an instance? Should we increase the minimum and maximum instance count range for a fleet? Should we make the target-based policy’s buffer bigger? These are all ideas but I just want to make sure that they are all valid and inquire about other ideas.
I know these are a lot of weird questions that are more about the inner workings of GameLift, so thank you in advance!