Skip to main content

Extend autoscaling

Last updated on April 17, 2024
info

Extend is in Open Beta for AGS Premium Clients! This means that the Extend add-on is available for you to try in your development environment. You can submit your feedback via our Extend Open Beta feedback form.

Hosted Extend service autoscaling strategy

Hosted Extend services run in standardized instances. The following are the app instance sizes that are available for you to use for each Extend feature:

  1. For Service Extension and Override
    1. CPU: 1400 millicores
    2. Memory: 2400 MB
  2. For Event Handler
    1. CPU: 600 millicores
    2. Memory: 1600 MB

Hosted Extend services use horizontal scaling as the strategy to match demand. Horizontal scaling works by adjusting the number of the running app instances. CPU utilization percentage of the app instance is used as the proxy for demand, with 100% app instance CPU utilization represents full (1) CPU core utilization. The Extend controller maintains the average of CPU utilization from all instance of a hosted Extend service to be close to 80% by using the following algorithm:

desiredAppInstances = ceil[currentAppInstances * ( currentAvgCPUUtilizationPct / 80% )]

For example, with a scale-out scenario, given that:

  • The current average CPU utilization of the App instances is 100% (the App instances are fully utilized).
  • There are 2 App instances currently running.
desiredAppInstances = ceil[2 * ( 100% / 80% )] 
desiredAppInstances = 3

The desired number of app instances will be 3.

Another example, with a scale-in scenario, given that:

  • The current average CPU utilization of the app instances is 20% (the app instances are underutilized).
  • There are 4 app instances currently running.
desiredAppInstances = ceil[4 * ( 20% / 80% )] 
desiredAppInstances = 1

The desired number of app instances will be 1.