Scaling servers up and down

Multiplay controls how fleets scale at the fleet region level through its reactive scaler and descaler components. These two components use information about the fleet regions, such as the current capacity and scaling configuration, to determine when to scale up or down. You cannot edit the scaling or descaling configuration values without the help of a Partner Manager or the Multiplayer support team.

Scaling up

Multiplay's reactive scaler determines when and how fleet regions increase capacity. For each fleet region, the reactive scaler loads the capacity and the fleet region settings. Fleets and fleet regions contain the following configuration values:

Setting these values for a fleet region overrides the equivalent settings at the fleet level.

The reactive scaler uses the scaling configuration values to calculate the target buffer, and then compares it to the current buffer.

If the current buffer is less than the target buffer, then the reactive scaler starts standby (warm) capacity. If the reactive scaler exhausts all warm capacity, then it adds a cloud machine by using one of the configured cloud providers attached to the account. The reactive scaler selects the most cost-effective cloud providers based on a value called the cost score, and then uses a round-robin algorithm to select a provider. Each cloud provider has a cost score which the reactive scaler uses to prioritize the most cost-efficient cloud provider.

Scaling down

Multiplay manages descaling decisions with a component called the descaler. For each fleet region, the descaler loads capacity and fleet region settings. The fleet region settings contain all of the scaling configuration values for that specific region within the fleet. Fleets and fleet regions contain the following configuration values:

The descaler uses the scaling configuration values to calculate the target buffer, and then compares it to the current buffer.

If the current buffer is greater than the target buffer, then the descaler searches for unused machines by comparing their timestamps against the shutdown TTL value. If a machine has been unused for longer than the shutdown TTL value, then the descaler stops the machine.

After stopping the game servers on an unused machine, the descaler compares the capacity against the configured minimum standby value. If the number of existing standby game servers satisfies the minimum standby servers value, then the descaler compares the amount of time that the machine has been shut down to the delete TTL. If the machine has been shut down for longer than the delete TTL, then the descaler deletes the machine through the cloud provider’s API