Kubernetes - Overallocated containers recommendation
The following recommendation details are provided:
- Brief description of the issue
- Severity or Efficiency level of the recommendation. The thresholds for calculating the efficiency level is defined in the associated optimizer rule.
- Date when this recommendation is generated on. It is the date of the last run of the associated optimizer rule.
- Name of the associated optimizer rule
- Recommended action that suggests reconfiguring the container with the ideal configuration values to reclaim unused resources.
BMC Helix Continuous Optimization detects saving opportunities combined with other potential resource usage optimizations. Hence, based on the resource usage pattern, the recommended action might suggest to reduce one resource and to increase another. - Actions that you can perform on your recommendations. For details, see Managing the recommendations.
- Comparison between the current resource usage and the estimated future usage after reconfiguring the container
- Criteria used for detecting the container as overallocated
- Benefits of implementing the recommendation

A container is detected to be overallocated if the resource demand, demand peak, and the corresponding headroom values are lower than the configured request and limit values:
- CPU headroom
- Memory headroom
- Damping factor
Demand is used for recommendation of request and demand peak is used for recommendation of limit.
You can change the default values of these thresholds on the Rules page in the Administration > Optimizer section.

For more information about modifying the Optimizer rules, see Configuring and managing Optimizer rules.
Identifying overallocation and suggesting recommendations
BMC Helix Continuous Optimization uses the formulas listed in the following table to compare a container's actual or forecasted resource usage with its configured request or limit. If the usage plus the headroom is less than the configured value, the container is considered overallocated.
Formula to detect overallocation of CPU Request
Formula: CPU Demand + Headroom < CPU Request | ||
| Parameter breakdown | ||
| Part 1: Forecasted CPU Usage | Definition: Predicted CPU usage for the next 30 days, based on historical trends. Computed as: | |
| Part 2: Current CPU Demand | Definition: Recently observed CPU usage. Computed as:
The BYCONT_CPU_USED_NUM_HM metric is only available if the High Mark metrics are enabled in ETL. The collected data is averaged at an hourly resolution. This means each data point represents the average CPU usage over one hour. Represents a single average hourly data point over a 30-day period. It indicates the 50th percentile (PCTL50), which is the median, calculated from about 720 hourly data points (24 hours times 30 days). | |
| Part 3: CPU Demand | Definition: The estimated CPU usage a container needs. Computed as: | |
| Part 4: Headroom | Definition: A configurable value to avoid under-provisioning. Default: 20% of CPU usage For more information, see Configuring and managing Optimizer rules. | |
| Part 5: CPU Request | Definition: The CPU amount guaranteed by Kubernetes for the container. | |
Recommendation: CPU Request = CPU Demand + Headroom | ||
Formula to detect overallocation of CPU Limit
Formula: CPU Demand Peak + Headroom < CPU Limit | ||
| Parameter breakdown | ||
| Part 1: Forecasted CPU Usage | Definition: Predicted CPU usage for the next 30 days, based on historical trends. Computed as: | |
| Part 2: Current CPU Demand | Definition: Recently observed CPU usage. Computed as:
The BYCONT_CPU_USED_NUM_HM metric is only available if the High Mark metrics are enabled in ETL. The collected data is averaged at an hourly resolution. This means each data point represents the average CPU usage over one hour. ^ Represents a single average hourly data point over a 30-day period. It corresponds to the 95th percentile (PCTL95), which indicates peak usage, calculated from about 720 hourly data points (24 hours times 30 days). | |
| Part 3: CPU Demand Peak | Definition: The highest CPU usage expected. Computed as: | |
| Part 4: Headroom | Definition: A configurable value to avoid under-provisioning. Default: 20% of CPU limit For more information, see Configuring and managing Optimizer rules. | |
| Part 5: CPU Request | Definition: The CPU amount guaranteed by Kubernetes for the container. | |
Recommendation: CPU Request = CPU Demand Peak + Headroom | ||
Formula to detect overallocation of Memory Request
Formula: Memory Demand + Headroom < Memory Request | ||
| Parameter breakdown | ||
| Part 1: Forecasted Memory Usage | Definition: Predicted memory usage for the next 180 days, based on historical trends. Computed as: | |
| Part 2: Current Memory Demand | Definition: Recently observed memory usage. Computed as: | |
| Part 3: Memory Demand | Definition: The estimated memory usage a container needs. Computed as: | |
| Part 4: Headroom | Definition: A configurable value to avoid under-provisioning. Default: 20% of memory usage For more information, see Configuring and managing Optimizer rules. | |
| Part 5: CPU Request | Definition: The amount of memory guaranteed by Kubernetes for the container. | |
Recommendation: Memory Request = Memory Demand + Headroom | ||
Formula to detect overallocation of Memory Limit
Formula: Memory Demand Peak + Headroom < Memory Limit | ||
| Parameter breakdown | ||
| Part 1: Forecasted Memory Usage | Definition: Predicted memory usage for the next 180 days, based on historical trends. Computed as: | |
| Part 2: Current Memory Demand Peak | Definition: Recently observed memory usage. Computed as: MAX(BYCONT_MEM_ACTIVE[MAX][Hour, MAX, 30D], | |
| Part 3: Memory Demand Peak | Definition: The estimated memory usage a container needs. Computed as: | |
| Part 4: Headroom | Definition: A configurable value to avoid under-provisioning. Default: 20% of the memory limit For more information, see Configuring and managing Optimizer rules. | |
| Part 5: CPU Request | Definition: The amount of memory guaranteed by Kubernetes for the container. | |
Recommendation: Memory Request = Memory Demand + Headroom | ||