Understanding the Container Optimization Details Report

Understanding the Container Optimization Details Report

#380640

The Container Optimization Details report displays detailed information for the selected container (row) in the tabular report. Click on the Details tab at the top of the Kubernetes Container Optimization dashboard, to open this report.

Note: Containers that do not have adequate information for recommendation analysis are not included on the Details tab.

This dashboard consists of:

  • A tabular report—The columns of the tabular report are listed in the Table: Container Details Tabular Columns below.
  • System details—Based on the container selected in the top pane the lower pane shows the corresponding resource utilization charts.

Using the Container Filter

You can apply various filters to customize the scope of containers you are reviewing. See Using Container Filters.

Note: When you export the content of a report with applied filters, the filtered set of systems is exported for the Cluster Breakdown, Namespace Breakdown. The functionality will be extended to the Details tab in a future release.

Reviewing the Container Details Table

When the page is initially loaded, this table is sorted alphabetically, by Cluster name, Namespace, Controller/Pod and then Container Name.

The content of the table as well as the totals at the bottom reflect the settings in both the Recommendation Filter and the Container Filter.

Note: When you export the content of a report with applied filters, the filtered set of systems is exported for the Cluster Breakdown, Namespace Breakdown. The functionality will be extended to the Details tab in a future release.

Table: Container Details Tabular Columns

Component/Column Name

Description

Cluster

The parent cluster containing the pods.

Namespace

The namespace. This allows you to logically group your pods.

Controller Type

The controller type that monitors and maintains the state of your cluster. This can be one of ReplicaSet, Replica Controller, etc.

Current Count

This is the current number of containers running in the selected cluster/namespace/pod combination.

The total number of containers is listed at the bottom of the column. This value is used to calculate totals for Requested and Limits for current and recommended CPU and memory values.

This total is also listed in the running total at the top of the page.

Controller/Pod

This is the name of the controller or pod. You can have one or more containers per pod.

Container Name

This is the name of the container.

Optimization Type

Identifies the overall result of the optimization analysis. Possible values are listed in the table below.

CPU Request (mCores)

The current, the recommended and the surplus requested CPU values for this container are displayed. The surplus is the difference between the current and the recommended values. If the if current value is unspecified, then the surplus value will be negative (i.e. 0 - recommended value).

The total, listed at the bottom of the Request and Limit columns for both CPU and Memory, is calculated as (Current CPU Request * Current Count). This formula is also used for CPU Limit, Memory Request and Memory Limit.

The total, listed at the bottom of the Surplus columns for both CPU and Memory, is calculated as (Current - Recommended).

CPU Limit (mCores)

The current and recommended CPU limit values for this container are displayed.

Memory Request (MB)

The current, recommended and the surplus requested memory values for this container are displayed. The surplus is the difference between the current and the recommended values.

Memory Limit (MB)

The current and recommended memory limit values for this container are displayed.

Predicted Uptime (%)

When using pay-per-use pricing models, we need to know the amount of time each container has been running to accurately estimate future costs.

The predicted uptime (%) for an instance or container, is based on the percentage of hours CPU utilization data is present in the historical interval, as specified in the policy settings.

Predicted uptime %, for new instances or containers, that started mid-way through the historical interval, is calculated from the time/date that the instance was started as opposed to the beginning of the interval, resulting in more accurate prediction for the future.

Number of Nodes

This is the number of nodes used by this container. You can hover over the cell to see the list of all node name(s) in which this container(s) resides.

Totals

This is the total for all the records shown in the tabular report. Totals are displayed for Current Count, CPU Request and Limits as well as Memory Requests and Limits (Current, Recommended and Surplus columns).

The total, listed at the bottom of the Request and Limit columns for both CPU and Memory, is calculated as (Current CPU Request * Current Count). This formula is also used for CPU Limit, Memory Request and Memory Limit.

The total, listed at the bottom of the Surplus columns for both CPU and Memory, is calculated as: (Current - Recommended).

If the value of any row is unspecified, then that value is treated as "0".

Note: The following details are not included in this report: Disk Allocations (Current | Recommended), Individual Disk Partitions at Risk, Disk Usage and Parent.

Container Optimization Type Summary

Densify container recommendations are categorized into optimization types, which are based on recommended sizing for the CPU Request, CPU Limit, Memory Request, and Memory Limit settings. See the table below for a description of each container optimization type.

Table: Container Optimization Type Summary

Optimization Type

Description

Just Right

This container manifest is optimally configured for the workload. There are no resizing recommendations.

Upsize

Densify recommends increasing one or more of CPU Request, CPU Limit, Memory Request, or Memory Limit settings. An "Upsize" optimization type has no recommendations to decrease any container CPU or memory request or limit settings.

For example, Densify assigns an "Upsize" optimization type if a container manifest has the following aggregate optimization recommendations:

  • Increasing CPU Request setting;
  • Keeping CPU Limit and Memory Limit at the same setting;
  • Setting a Memory Request from an unspecified value.

Downsize

Densify recommends decreasing one or more of CPU Request, CPU Limit, Memory Request, or Memory Limit settings. A "Downsize" optimization type does not have any size increase recommendations for any request or limit setting.

For example, Densify assigns a "Downsize" optimization type if a container manifest has the following aggregate recommendations:

  • Decreasing CPU Request and CPU Limit settings;
  • Keeping Memory Request and Memory Limit at the same setting.

Resize

Densify recommends resizing at least two of CPU Request, CPU Limit, Memory Request, or Memory Limit settings. For "Resize" optimization type, there is at least one increase size recommendation and at least one decrease size recommendation.

For example, Densify assigns a "Resize" optimization type if a container has the following recommendations:

  • Increasing CPU Request setting;
  • Keeping CPU Limit at the current setting;
  • Sizing Memory Request from an unspecified value;
  • Decreasing Memory Limit from it's current value.

Size from Unspecified

Sizing recommendations for this container manifest are made without current CPU Request, CPU Limit, Memory Request, and Memory Limit values. For "Size from Unspecified" optimization type, there is at least one sizing recommendation from an unspecified setting and no decreasing or increasing size recommendations for any container request or limit settings.

For example, Densify assigns a "Size from Unspecified" optimization type if a container has the following recommendations:

  • Sizing CPU Request and CPU Limit settings;
  • Keeping Memory Request and Memory Limit at the same settings.

No Data

There is insufficient data to recommend CPU Request, CPU Limit, Memory Request, or Memory Limit values.

Reviewing the Resource Utilization Metrics Charts

Clicking on any row in the tabular report, in the upper pane, shows the Resource Utilization Metrics tab, in the lower pane. The workload charts on this tab show the current and the recommended settings if the proposed recommendations are applied:

  • CPU Utilization in mCores (Current and Recommended Settings)
  • Memory Utilization in MB (Current and Recommended Settings)
  • Disk I/O
  • Restarts
  • ASG Scaling ( in-service instances)

If the optimization type of the selected container is "Just Right", then only 2 charts (CPU and memory current utilization) are displayed.

Note: If no metrics are available, then the corresponding charts are not displayed.

These workload charts show hourly min/max and sustained activity for the selected system. If necessary use the left/right arrows to scroll though the workload charts.

Workload charts display current sustained activity in blue, while sustained activity on the recommended request settings chart is shown in green. The minimum and maximum utilization values are shown as vertical lines above and below the coloured block. The median is indicated as a black line within the coloured block. The average is indicated in, in brackets in the subtitle of the chart.

The Y-axis is scaled dynamically to match the range of data. The yellow line indicating the request setting is shown and the setting of the Y-axis scale also accounts for the request setting. The pink line indicates the limit. If the request and the limit are the same, the dashed yellow/pink line indicates the value. The units of the workload are also shown on the Y-axis.

Understanding the Quartiles in the Resource Utilization Charts

To learn more watch the video,

In charts, workload data for each system is shown in four different bars (two yellow and two red), called quartiles, to show minimum, average, sustained and peak values. When used in the analysis, quartiles provide a good representation of system activity because the weighted scoring for sustained and peak activity produces a more accurate assessment of workload utilization patterns and requirements.

Quartiles are calculated in the following manner:

  • Workload activity is collected every five minutes, which totals 12 times per hour.
  • The 12 values are then re-ordered in descending order and separated into equal sample sizes (quartiles), with each quartile having three values. Each quartile represents 25% of operational time.
  • The bottom of the first quartile shows the minimum value, the next quartile shows average values, the top of the third quartile shows the sustained value and the top of the fourth quartile shows the peak value.