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