This documentation supports releases of BMC Helix Continuous Optimization up to December 31, 2021. To view the latest version, select the version from the Product version menu.

Recommendations page in the Kubernetes view

The Recommendations page in the Kubernetes view provides a set of out-of-the-box recommendations that enables you to handle a probable risk or efficiency issue with the capacity of your Kubernetes resources. 

To access this page, in the navigation pane of the Views tab, click Views > Containers > Kubernetes. In the Kubernetes page, click the Recommendations tab.

A recommendation is a suggestion based on best practices about how to avoid potential capacity risks or improve efficiency. It is generated based on an optimizer rule that runs as per an associated schedule. An administrator can customize the rule or create a new one to generate recommendations as per the requirements. For more information, see Configuring alerts and recommendations.

Each recommendation comprises the following elements:

  • A brief overview of the issue. 
  • One or more suggested actions to resolve the issue. By performing the recommended actions, you can avoid the potential capacity risks and improve the overall efficiency.

 Recommendations are grouped as follows: Risk recommendations and Efficiency recommendations.

  • Risk recommendations are provided to prevent a risk. For example, in case a disk is nearing saturation; the recommendation provides information about how much space must be added to prevent saturation for the next three months. 
  • Efficiency recommendations are not to prevent a problem, but to improve resource usage by eliminating wastage and reducing associated costs.

The data in the Recommendations page is categorized based on different systems and recommendation types, and grouped under separate tabs. While Forecasted Saturation and Oversubscribed Clusters are risk recommendations, Overallocated Containers is an efficiency recommendation. By default, some columns in the table are hidden. You can show or hide columns using the action menuthat is located next to the table title. You can sort columns in tables alphabetically, or by size. For more information, see Sorting a table in Views.

Forecasted Saturation: Infrastructure

This recommendation detects infrastructure elements such as clusters, namespaces, or nodes for which the resource usage has already exceeded thresholds or is expected to exceed the thresholds within the next 30 days.

The widgets on the page provides a quick overview of the recommended CPU, memory, and storage against the current values to avoid saturation.

You can analyze the saturating systems and take appropriate actions on them by reviewing the provided recommendations. You can decide to ignore the recommendations or save the recommendations for review. For details, see To manage the recommendations.

The Forecasted Saturation: Infrastructure table lists the following information for each system. 

ColumnDescription

Click the arrow icon to view the recommendations details window. For information on the recommendations details and configurations required to generate these recommendations, see Kubernetes - Forecasted saturation recommendation.
System NameName of the cluster, node, or namespace
System TypeType of the system. For example: Cluster
Days to SaturationEstimated number of days before one of the resources (CPU, Memory, or Storage1) of the cluster, node, or namespace breaches the configured warning threshold.
If the resource usage has already exceeded thresholds, it displays Saturated.
BottleneckName of the resource that has either saturated or will saturate in the next 90 days. Bottleneck resource can be CPU, Memory, or Storage1.
CPU Used [cores]Total CPU used by the cluster, node, or namespace expressed in cores.
CPU Trend [cores]Daily growth rate of CPU utilization of the cluster, node, or namespace.
CPU Current [cores]
  • For cluster or node: Number of CPU cores currently configured for the cluster or node.
  • For namespace: CPU request configured for the namespace expressed in cores.
CPU Recommended [cores]
  • For cluster or node: Recommended CPU cores to avoid saturation.
  • For namespace: Recommended CPU request to avoid saturation.

Recommendation is based on the daily growth rate.

CPU Request [cores]

Requested CPU cores for the cluster, node, or namespace. It is the sum of the CPU request of the containers running in these infrastructure elements. CPU request of a container is the amount of CPU that the system will guarantee for a container.

CPU Limit [cores]

CPU Limit of the cluster, node, or namespace. It is the sum of the CPU limit of the containers running in these infrastructure elements. CPU limit of a container is the maximum amount of CPU that the container is allowed to use.

Memory Used [GB]Memory used by the cluster, node, or namespace in GB. 
Memory Trend [GB]Daily growth rate of memory utilization of the cluster, node, or namespace.
Memory Current [GB]Total memory configured for the cluster, node, or namespace in GB.
Memory Recommended [GB]
  • For cluster or node: Recommended memory to avoid saturation.
  • For namespace: Recommended memory request to avoid saturation.

Recommendation is based on the daily growth rate.

Memory Request [GB]

Requested memory for the cluster, node, or namespace. It is the sum of the memory request of the containers running in these infrastructure elements. Memory request of a container is the amount of memory that the system will guarantee for a container.

Memory Limit [GB]Memory Limit of the cluster, node, or namespace. It is the sum of the memory limit of the containers running in these infrastructure elements. Memory limit of a container is the maximum amount of memory that the container is allowed to use.
Storage Used [GB]1Total storage used by the cluster or node in GB.  Storage used is not available for namespaces.

Storage Current [GB]1

Total storage configured for the cluster or node in GB. Storage current is not available for namespaces.
Storage Recommended [GB]1For cluster and node, it is the amount of recommended storage to avoid saturation. Recommendation is based on the daily growth rate. Storage recommended is not available for Namespaces.

1 - Storage values are displayed for Clusters and Node only.

Forecasted Saturation: Containers

This recommendation detects containers for which the resource usage has already exceeded thresholds or is expected to exceed the thresholds within the next 30 days.

The widgets on the page provides a quick overview of the recommended CPU, memory, and storage against the current values to avoid saturation.

You can analyze the saturating containers and take appropriate actions on them by reviewing the provided recommendations. You can decide to ignore the recommendations or save the recommendations for review. For details, see To manage the recommendations.

The Forecasted Saturation: Containers table lists the following information for each system. 

ColumnDescription

Click the arrow icon to view the recommendations details window. For information on the recommendations details and configurations required to generate these recommendations, see Kubernetes - Forecasted saturation recommendation.
NameName of the container.
Controller/Pod

Name of the controller or pod the container is running on. 

Note: The k8s (Kubernetes) Prometheus ETL keeps only the persistent part of the names of controllers and pod to ensure historical continuity of data.

Cluster

Name of the cluster on which the container is running.

Days to SaturationEstimated number of days before one of the resources (CPU or Memory) of the container breaches the configured warning threshold.
If the resource usage has already exceeded thresholds, it displays Saturated.
BottleneckName of the resource that has either saturated or will saturate in the next 90 days. Bottleneck resource can be CPU or MEMORY.
CPU Used vs Request [%]CPU usage expressed as a percentage, scaled based on the CPU request configured for the container.
CPU Used vs Limit [%]CPU usage expressed as a percentage, scaled based on the CPU limit configured for the container.
CPU Request Current [mcores]

Amount of CPU that the system will guarantee for a container.

CPU Request Recommended [mcores]Recommended CPU requests to avoid saturation
CPU Limit Current [mcores]Maximum CPU cores that the container will be allowed to use.
CPU Limit Recommended [mcores]Recommended CPU limit corresponding to the increase in the recommended CPU request for the container.
Memory Used vs Request [%]Memory usage expressed as a percentage scaled based on the memory request configured for the container.
Memory Used vs Limit [%]Memory usage expressed as a percentage,  scaled based on the memory limit configured for the container.
Memory Request Current [GB]Amount of Memory that the system will guarantee for a container.
Memory Request Recommended [GB]Recommended memory request to avoid saturation.
Memory Limit Current [GB]Maximum amount of Memory that the container is allowed to use. Container will be terminated if it tries to allocate more memory than the configured limit.
Memory Limit Recommended [GB]Recommended memory limit corresponding to the increase in the recommended CPU request for the container.

Oversubscribed Clusters

This recommendation identifies Kubernetes clusters that are oversubscribed. 

The widgets on the page provides a quick overview of the overcommitted CPU and memory values based on total values. 

You can analyze the oversubscribed clusters and take appropriate actions on them by reviewing the provided recommendations. You can decide to ignore the recommendations or save the recommendations for review. For details, see To manage the recommendations.

The Oversubscribed Clusters table lists the following information for each system. 

ColumnDescription

Click the arrow icon to view the recommendations details window. For information on the recommendations details and configurations required to generate these recommendations, see Kubernetes - Oversubscribed clusters recommendation.
NameName of the cluster.
#PodsNumber of pods running in this cluster.
CPU [cores]Number of CPU cores currently configured for the cluster.
CPU Request [cores]Requested CPU cores for the cluster. It is the sum of the CPU request of the containers running in this cluster. CPU request of a container is the amount of CPU that the system will guarantee for the container.
CPU Limit [cores]CPU Limit of the cluster. It is the sum of the CPU limits of the containers running in this cluster. CPU limit is the maximum amount of CPU that the container is allowed to  use.
CPU Used vs Request [%]CPU usage expressed as a percentage, scaled based on the total CPU request of the cluster.
CPU Used vs Limit [%]CPU usage expressed as a percentage, scaled based on the total CPU limit of the cluster.
CPU Overcommitment [%]

Sum of CPU limit configured for each of the containers in the cluster divided by the total CPU cores of the cluster expressed as a percentage. If this number is over 100%, then the CPU is overcommitted. Numbers over 100% are not necessarily an indication of a problem, it indicates optimal use of resources. However, extremely high CPU overcommitment could result is performance problems. 

Memory [GB]Total memory configured for the cluster.
Memory Request [cores]Requested memory for the cluster. It is the sum of the memory request of the containers running in this cluster. Memory request of a container is the amount of memory that the system will guarantee for the container.
Memory Limit [cores]Memory Limit of the cluster. It is the sum of the memory limit of the containers running in this cluster. Memory limit is the maximum amount of memory that the container is allowed to use.
Memory Used vs Request [%]Memory usage expressed as a percentage, scaled based on the total memory request of the cluster.
Memory Used vs Limit [%]Memory usage expressed as a percentage, scaled based on the memory limit of the cluster.
Mem Overcommitment

Sum of memory limit configured for all the containers in the cluster divided by the total memory of the cluster expressed as a percentage. If this number is over 100%, then the memory is overcommitted. Numbers over 100% are not necessarily an indication of a problem, it indicates optimal use of resources. However, extremely high memory overcommitment could result is performance problems. 

Overallocated Containers

This recommendation identifies containers with underutilized resources (CPU or memory).

The widgets on the page provides a quick overview of the reclaimable CPU and memory based on the requested versus recommended values.

You can analyze the overallocated containers and take appropriate actions on them by reviewing the provided recommendations. You can decide to ignore the recommendations, save the recommendations for review, or request for an automatic implementation. For details, see To manage the recommendations.

The Overallocated Containers table lists the following information for each system. 

ColumnDescription


Click the arrow to view the recommendations details. For information on the recommendations details and configurations required to generate these recommendations, see Kubernetes - Overallocated containers recommendation.
ContainerName of the container.
Controller/Pod

Name of the controller or pod the container is running on. 

Note: The k8s (Kubernetes) Prometheus ETL keeps only the persistent part of the names of controllers and pod to ensure historical continuity of data.

ClusterName of the cluster on which the container is running.
CPU Demand vs Request [%]

CPU demand scaled based on the CPU request of the container. CPU demand is calculated using the 75th percentile value of the granular samples of container usage data.  

CPU Demand Peak vs Limit [%]

CPU demand scaled based on the CPU limit of the container. CPU demand peak is calculated using the 95th percentile value of the granular samples of container usage data.  

CPU Request [mcores]

Amount of CPU that the system will guarantee for a container.

CPU Limit [mcores]Maximum CPU cores that the container will be allowed to use.
Recommended CPU Request [mcores]CPU requests recommended to avoid overallocation of resource to the container and save cost by reclaiming resources. 
Recommended CPU Limit [mcores]Recommended CPU limit corresponding to the increase in the recommended CPU request for the container.
Memory Demand vs Request [%]

Memory demand scaled based on the memory request of the container. Memory demand is calculated using the 75th percentile value of the granular samples of container usage data.  

Memory Demand Peak vs Limit [%]

Memory demand scaled based on the CPU limit of the container. CPU demand peak is calculated using the 95th percentile value of the granular samples of container usage data.  

Memory Request [GB]

Amount of memory that the system will guarantee for a container.

Memory Limit [GB]

Maximum amount of Memory that the container is allowed to use. Container will be terminated if it tries to allocate more memory than the configured limit.

Recommended Memory Request [GB]Amount of memory request recommended to avoid overallocation of containers and save cost by reclaiming resources.
Recommended Memory Limit [GB]Recommended memory limit corresponding to the increase in the recommended CPU request for the container.

Consider the following example to review the recommendations details:

To manage the recommendations

You can take appropriate actions on systems by reviewing the suggested recommendations. You can decide to ignore the recommendations or save the recommendations for review.

By default, all systems in a particular tab are displayed in the first tab. For example, All Forecasted Saturation Containers tab.

Based on your review of recommendations, select the required systems, perform one of the following actions, and click Apply.

  • Ignore: When you do not want to implement the suggested recommendations for certain systems, you can ignore them. 
    Select the required systems, click Ignore from the actions list, and click Apply. The ignored systems are then displayed under the Ignored tab. 
    For example, you might not want to reclaim unused resources of a container (that is running business critical applications), though it is categorized as overallocated and recommended to be reconfigured. In this case, you can ignore this container. 
    You can choose to save ignored systems for review or revert them to the original state for further actions. 
  • Save for Review: Instead of ignoring, you can save the recommendation details of certain systems for further review. 
    Select the required systems, click Save for review from the actions list, and click Apply. The requested systems are displayed under the Saved for Review tab.
    For example, you can export the report of saved systems and share it with an IT administrator for review or manual implementation of recommendations. 

    You can choose to ignore the saved systems or revert them to the original state for further actions. 

Consider the following example to save the required systems for review:

To implement overallocated container recommendations automatically

When you are sure about implementing the recommendations, you can send the details to BMC Helix Intelligent Automation for automatic implementation of the recommendations. 

Select the required systems, click Send to Intelligent Automation from the actions list, and click Apply. The requested systems are displayed under the Intelligent Automation tab. 

Important

If BMC Helix Continuous Optimization is unable to find any published policy available in BMC Helix Intelligent Automation to trigger the recommendation, an error message is displayed.

Configure a policy for the OVERALLOCATED_CONTAINER_RECOMMENDATION event type in BMC Helix Intelligent Automation. For more information, see Integrating with BMC Helix Intelligent Automation to send resizing recommendations for overallocated containers.

BMC Helix Intelligent Automation is an add-on service for BMC Helix Continuous Optimization and is hosted as a SaaS service on BMC Helix Portal.



Was this page helpful? Yes No Submitting... Thank you

Comments