Elastic Instance Management¶
Before you can deliver your applications and desktops to your users, you first have to set up one or more pools of production instances – this defines the “capacity” of your account. Each production pool corresponds to a specific instance type (e.g., # of vCPUs/core, memory, and GPU). You can set up your production pool capacity to power on/off dynamically based on user demand. Elastic Instance Management or “elasticity” is a rule-engine in the Frame platform that allows an administrator to configure instant-access to instances by defining how many instances should be started at specific times and circumstances. Admins can manage capacity for their users by clicking “Capacity” listed on the left side of the Dashboard.
Three key parameters define the capacity of each production pool:
Minimum (Min): the minimum number of instances powered on at a given time, ready to start sessions immediately.
Buffer: extra powered on instances that are ready for a user within seconds. Set this to a number of users you expect will connect within any 2 minute window (the time it takes to boot an instance).
Maximum (Max): the maximum number of concurrent users you expect. As users connect to the min and then start using buffer instances, Frame will scale automatically by powering on more instances up to the max. This is essentially the largest number of instances that you will allow your system to automatically scale up to, based on user demand. This lets you cap the number of simultaneous users and defines the size of the “pool” of instances that are allocated for your account.
The max capacity limit for a production pool is 1,000 VMs for any account.
As an example, let’s say that you have an “Air 8GB” production pool with a minimum of 5, a buffer of 3, and a max of 20 under “Default capacity.” The system will work as follows:
With no user load, 5 Air 8GB instances will be running ready to accept a connection (the minimum).
Once three users connect, there will only be two powered on instances left from the original set of “minimum” instances. Since the buffer is set to 3, the system will automatically power on an additional instance, so that there are at least 3 “buffer” instances – three in use and three ready for new users.
Each time a new user connects to consume one of the buffer instances, another instance will automatically be turned on to replenish the buffer.
As more users connect, more instances will get provisioned – but the system will always attempt to maintain a buffer of 3 instances to ensure that new users get connected as quickly as possible to a session.
The platform will continue to scale up until it reaches the maximum value, which is 20 in this case. The 21st user (and all subsequent users) will get an “out-of-capacity” message when attempting to connect.
As users disconnect and instances become free, the system will also power down instances automatically. Note that instances will remain on in full one-hour increments and automatically turn off if not in use, based on your capacity settings.
Eventually, as user demand decreases back to zero, the powered on instance count will go back down to the minimum of 5.
You can have a minimum of 0 and a buffer of 0 to ensure that instances are powered on only when a user requests an application or desktop. In this case, users will have to wait a few minutes (typically 2-3 minutes) for the instance to become available after the users request their apps or desktops. They’ll be notified that an instance is powering on.
It is best to set the min and buffer to 0 and the max to 1 when publishing for the first time since you are still testing everything out.
Note that min and buffer instances incur hourly usage whether users are connected or not. You can set both to 0, so instances will only boot on-demand. This conserves usage, but users must wait approximately 2 minutes to start a Frame session.
Set Active Capacity¶
The Frame platform allows admins to define “active capacity” for certain times of day for certain days of the week. For example, you may want your minimum and buffer increased during specific hours on specific days when you expect an increase in usage. You can also use Frame Admin API to create custom capacity settings that must change more than twice a day.
For this example, we have kept the default settings from the previous example but have now set active capacity hours. Every Tuesday and Thursday between 9 AM and 5 PM, the minimum will be raised to 8 with a buffer of 5.
If the fields under Active Capacity are left blank, the system will use the Default Capacity specified on the left side of the page.
System Capacity by System Type¶
Admins can define platform capacity depending on the instance type being used. For example, you may have a team of graphic designers who would require access to a GPU-backed instance type for a few hours during the week. You can set active capacity for that instance type by clicking on corresponding instance type tab and defining those values.
In the example above, we have enabled a minimum of 2 Pro 64GB (GPU-backed) instances to be running and available between the hours of 9 AM and 3 PM UTC every Thursday and Friday of the week. The active capacity has only been set for the Pro 64GB instance type. Administrators may specify default and active capacity settings for any of their instance types by clicking on the corresponding tab, adjusting settings, and clicking “Save.”
Add Production Pool¶
Admins can add additional production pools from the set of supported instnace types for a given cloud infrastructure. To add a new production pool, go to Capacity from the Dashboard and click on the “+ Add Instance Type” option to the right of the existing production pools.
You will be able to select the instance type you wish to add from the list of remaining instance types and click “Add”.
The selected instance type will now be added to your set of production pools.
Delete Production Pool¶
A production pool with a Default Capacity max of 0 can be deleted from the production pool list. To delete a production pool, go to Capacity from the Dashboard and select on the production pool you wish to delete. Click on the icon with the 3 vertical dots and select the “Delete” function.
Frame will request that you confirm the deletion of the instance type pool - “Delete” to delete the pool and “Cancel” to not delete the pool.
Only production pools with max = 0 can be deleted.