Container spec policies
This policy controls the analysis of resize actions generated on container specs. To define the acceptance mode of these actions, create a workload controller policy.
Analysis properties: overview
Analysis properties specify the tolerance levels for vCPU limits and requests, vMem limits and requests, and CPU throttling that Turbonomic must consider when it generates resize actions. Resize actions outside these tolerance levels may or may not generate, depending on the action generation setting (on or off) that you specify.
For example, consider resizing vMem limits.
-
As vMem demand increases, Turbonomic can generate vMem limit resize actions that fall within the capacity range that you specified for vMem limits. The action acceptance mode defined in the policy for the parent workload controller determines how resize actions are executed. For example, if the action acceptance mode is automated, Turbonomic executes resize actions automatically.
-
If the container spec requests vMem outside the range and the action generation for out-of-range resize actions is turned on, Turbonomic generates resize actions even if they are outside the range. Note that out-of-range resize actions always generate in recommend mode, which means that you can view the actions in Action Center, but you can only execute them in your cluster.
Analysis properties: resize within range
Setting | Default state |
---|---|
Generate Actions | On |
Set to Recommend mode | Off |
-
Generate Actions
If you turn on this setting, resize actions generate and take into consideration the analysis properties for vCPU limits and requests, vMem limits and requests, and CPU throttling.
If you turn off this setting, resize actions do not generate.
-
Set to Recommend mode
If you turn on this setting, resize actions generate in recommend mode, overriding the action acceptance mode configured in the policy for the parent workload controller. This means that you need to execute workload controller resize actions in your cluster. If this is not your intention, keep this setting turned off. You can turn it on for container specs that cannot be updated from their parent workload controllers, such as sidecars.
Analysis properties: vCPU limits
Setting | Default value/state |
---|---|
Capacity range (in mCores) | 500 to 64000 |
Resize below minimum – Generate action in recommend mode | Off |
Resize above maximum – Generate action in recommend mode | On |
Target utilization | Midpoint – 70% |
-
Capacity range
Turbonomic generates resize actions that fall within the specified capacity range.
-
Resize below minimum / Resize above maximum
If resize values fall outside the specified capacity range and this setting is:
-
On – Turbonomic generates resize actions in recommend mode. You can execute these actions only in your cluster.
-
Off – Turbonomic does not generates resize actions.
For example, if the capacity range is 500 to 64000 and the resize below minimum setting is turned off, Turbonomic does not generates resize actions that are lower than 500 mCores.
-
-
Target utilization
Midpoint determines the range of utilization that is considered optimal. The lower and upper limits for this range are always 5% below and above the midpoint, respectively. For example, A midpoint of 70% means that optimal utilization is between 65% and 75%. Turbonomic takes this optimal utilization range (along with other resize factors) into consideration when it generates resize actions. For example, it can generate a resize action to improve performance while keeping utilization within this range.
The slider shows 10% and 90% as the minimum and maximum midpoint values that you can specify, for your reference. These values are not configurable. This means that you cannot specify a midpoint value that is lower than 10% or higher than 90%. For example, if you set the midpoint to the minimum of 10%, the optimal utilization range is 5% to 15%.
Analysis properties: vCPU requests
Setting | Default value/state |
---|---|
Minimum value (in mCores) | 10 |
Resize below minimum – Generate action in recommend mode | On |
Target utilization | Midpoint – 70% |
-
Minimum value
Turbonomic generates resize actions if resize values are equal to or higher than the minimum value.
-
Resize below minimum
If resize values are lower than the minimum specified value and this setting is:
-
On – Turbonomic generates resize actions in recommend mode. You can execute these actions only in your cluster.
-
Off – Turbonomic does not generates resize actions.
For example, if the minimum value is 10 and the resize below minimum setting is turned on, Turbonomic generates resize actions that are lower than 10 mCores. You can execute these actions only in your cluster.
-
-
Target utilization
Midpoint determines the range of utilization that is considered optimal. The lower and upper limits for this range are always 5% below and above the midpoint, respectively. For example, A midpoint of 70% means that optimal utilization is between 65% and 75%. Turbonomic takes this optimal utilization range (along with other resize factors) into consideration when it generates resize actions. For example, it can generate a resize action to improve performance while keeping utilization within this range.
The slider shows 10% and 90% as the minimum and maximum midpoint values that you can specify, for your reference. These values are not configurable. This means that you cannot specify a midpoint value that is lower than 10% or higher than 90%. For example, if you set the midpoint to the minimum of 10%, the optimal utilization range is 5% to 15%.
Analysis properties: vMem limits
Setting | Default value/state |
---|---|
Capacity range (in MB) | 10 to 1048576 |
Resize below minimum – Generate action in recommend mode | On |
Resize above maximum – Generate action in recommend mode | On |
Target utilization | Midpoint – 70% |
-
Capacity range
Turbonomic generates resize actions that fall within the specified capacity range.
-
Resize below minimum / Resize above maximum
If resize values fall outside the specified capacity range and this setting is:
-
On – Turbonomic generates resize actions in recommend mode. You can execute these actions only in your cluster.
-
Off – Turbonomic does not generates resize actions.
For example, if the capacity range is 10 to 104857 and the resize below minimum setting is turned on, Turbonomic generates resize actions that are lower than 10 MB. You can execute these actions only in your cluster.
-
-
Target utilization
Midpoint determines the range of utilization that is considered optimal. The lower and upper limits for this range are always 5% below and above the midpoint, respectively. For example, A midpoint of 70% means that optimal utilization is between 65% and 75%. Turbonomic takes this optimal utilization range (along with other resize factors) into consideration when it generates resize actions. For example, it can generate a resize action to improve performance while keeping utilization within this range.
The slider shows 10% and 90% as the minimum and maximum midpoint values that you can specify, for your reference. These values are not configurable. This means that you cannot specify a midpoint value that is lower than 10% or higher than 90%. For example, if you set the midpoint to the minimum of 10%, the optimal utilization range is 5% to 15%.
Analysis properties: vMem requests
Setting | Default value/state |
---|---|
Minimum value (in MB) | 10 |
Resize below minimum – Generate action in recommend mode | On |
Target utilization | Midpoint – 70% |
-
Minimum value
Turbonomic generates resize actions if resize values are equal to or higher than the minimum value.
-
Resize below minimum
If resize values are lower than the minimum specified value and this setting is:
-
On – Turbonomic generates resize actions in recommend mode. You can execute these actions only in your cluster.
-
Off – Turbonomic does not generates resize actions.
For example, if the minimum value is 10 and the resize below minimum setting is turned on, Turbonomic generates resize actions that are lower than 10 MB. You can execute these actions only in your cluster.
-
-
Target utilization
Midpoint determines the range of utilization that is considered optimal. The lower and upper limits for this range are always 5% below and above the midpoint, respectively. For example, A midpoint of 70% means that optimal utilization is between 65% and 75%. Turbonomic takes this optimal utilization range (along with other resize factors) into consideration when it generates resize actions. For example, it can generate a resize action to improve performance while keeping utilization within this range.
The slider shows 10% and 90% as the minimum and maximum midpoint values that you can specify, for your reference. These values are not configurable. This means that you cannot specify a midpoint value that is lower than 10% or higher than 90%. For example, if you set the midpoint to the minimum of 10%, the optimal utilization range is 5% to 15%.
Analysis properties: CPU throttling
Setting | Default value |
---|---|
CPU throttling tolerance | Midpoint – 20% |
This value defines your acceptable level of throttling and directly impacts the resize actions generated on CPU limits.
A low percentage value indicates more sensitivity to throttling, while a high value indicates more tolerance for throttling and a higher risk of congestion.
Midpoint determines the range of throttling that will be tolerated. The slider shows 10% and 70% as the minimum and maximum midpoint values that you can specify, for your reference. These values are not configurable. This means that you cannot specify a midpoint value that is lower than 10% or higher than 70%.
Learn more about CPU throttling here.
Scaling constraints: increment constants
Turbonomic recommends changes in terms of the specified resize increments.
Attribute | Default value |
---|---|
Increment constant for vCPU Limit and vCPU Request (mCores) | 100 |
Increment constant for vMem Limit and vMem Request (MB) | 128 |
For example, assume the vCPU request increment is 100 mCores and you have requested 800 mCores for a container. Turbonomic could recommend reducing the request by 100, down to 700 mCores.
For vMem, do not set the increment value to be lower than what is necessary for the container to operate. If the vMem increment is too low, Turbonomic might allocate insufficient vMem. For a container that is underutilized, Turbonomic will reduce vMem allocation by the increment amount, but it will not leave a container with zero vMem. For example, if you set this to 128, then Turbonomic cannot reduce the vMem to less than 128 MB.
Scaling constraints: rate of resize
(For the default policy only)
Attribute | Default value |
---|---|
Rate of Resize | High |
When resizing resources, Turbonomic calculates the optimal values for vCPU and vMem, but it does not necessarily make a change to that value in one action. Turbonomic uses the rate of resize setting to determine how to make the change in a single action.
-
Low
Change the value by one increment, only. For example, if the resize action calls for increasing vMem, and the increment is set at 128, Turbonomic increases vMem by 128 MB.
-
Medium
Change the value by an increment that is 1/4 of the difference between the current value and the optimal value. For example, if the current vMem is 2 GB and the optimal vMem is 10 GB, then Turbonomic will raise vMem to 4 GB (or as close to that as the increment constant will allow).
-
High
Change the value to be the optimal value. For example, if the current vMem is 2 GB and the optimal vMem is 8 GB, then Turbonomic will raise vMem to 8 GB (or as close to that as the increment constant will allow).
Scaling constraints: aggressiveness and observation periods
Turbonomic uses these settings to calculate utilization percentiles for vCPU and vMem. It then recommends actions to improve utilization based on the observed values for a given time period.
-
Aggressiveness
Attribute Default value Aggressiveness 99th Percentile When evaluating vCPU and vMem performance, Turbonomic considers resource utilization as a percentage of capacity. The utilization drives actions to scale the available capacity either up or down. To measure utilization, the analysis considers a given utilization percentile. For example, assume a 99th percentile. The percentile utilization is the highest value that 99% of the observed samples fall below. Compare that to average utilization, which is the average of all the observed samples.
Using a percentile, Turbonomic can recommend more relevant actions. This is important in the cloud, so that analysis can better exploit the elasticity of the cloud. For scheduled policies, the more relevant actions will tend to remain viable when their execution is put off to a later time.
For example, consider decisions to reduce the capacity for vCPU on a container. Without using a percentile, Turbonomic never resizes below the recognized peak utilization. For most containers there are moments when peak vCPU reaches high levels. Assume utilization for a container peaked at 100% just once. Without the benefit of a percentile, Turbonomic will not reduce allocated vCPU for that container.
With Aggressiveness, instead of using the single highest utilization value, Turbonomic uses the percentile you set. For the previous example, assume a single vCPU burst to 100%, but for 99% of the samples vCPU never exceeded 50%. If you set Aggressiveness to 99th Percentile, then Turbonomic can see this as an opportunity to reduce vCPU allocation for the container.
In summary, a percentile evaluates the sustained resource utilization, and ignores bursts that occurred for a small portion of the samples. You can think of this as aggressiveness of resizing, as follows:
-
100th Percentile
Least aggressive, recommended for critical workloads that need maximum guaranteed performance at all times
-
99th Percentile (Default)
Recommended setting to achieve maximum performance
-
90th Percentile
Most aggressive, recommended for non-production workloads that can stand higher resource utilization
-
-
Max observation period
Attribute Default value Max Observation Period Last 30 Days To refine the calculation of resource utilization percentiles, you can set the sample time to consider. Turbonomic uses historical data from up to the number of days that you specify as a sample period. (If the database has fewer days' data then it uses all of the stored historical data.)
A shorter period means there are fewer data points to account for when Turbonomic calculates utilization percentiles. This results in more dynamic, elastic resizing, while a longer period results in more stable or less elastic resizing. You can make the following settings:
-
Less Elastic – Last 90 Days
-
Recommended – Last 30 Days
-
More Elastic – Last 7 Days
-
-
Min observation period
Attribute Default value Min observation period 1 Day This setting ensures historical data for a minimum number of days before Turbonomic will generate an action based on the percentile set in Aggressiveness. This ensures a minimum set of data points before it generates the action.
Especially for scheduled actions, it is important that resize calculations use enough historical data to generate actions that will remain viable even during a scheduled maintenance window. A maintenance window is usually set for "down" time, when utilization is low. If analysis uses enough historical data for an action, then the action is more likely to remain viable during the maintenance window.
-
More Elastic – None
-
Recommended – 1 Day
-
Less Elastic – 3 or 7 Days
-