0 0 Share PDF

Why is the percentage CPU utilization for a node in UCP higher than 100%?

Article ID: KB000910

Prerequisites

UCP version 3.0.x or earlier.

Issue

Viewing a node's resource graphs within the UCP dashboard, CPU utilization is shown at over 100% for the node, but only 100% in the table view.

Example: example

Root cause

The CPU utilization by node is a sum of CPU utilization of all containers running on that node.

More than 100%

In UCP 3.0.x, the number of CPU cores was not taken into appropriate consideration, so it could lead to a CPU utilization value higher than 100%, which explains the high value that can be seen on the graph.

100% on the table

A bug was present in UCP version 3.0.x and earlier, that did not permit a CPU utilization value higher than 100% in the table below the resource graphs. As a result there was a disparity between the value displayed in the graph and that in the associated table.

Resolution

In UCP 3.1.x, a new metric was introduced to account for the number of CPU cores on the node.

The percentage CPU utilization for a node is now the sum of CPU utilization for each container, divided by the number of CPU cores.

cpu_usage_node1 = (cpu_usage_container1_on_node1 + cpu_usage_container2_on_node1 + ... + cpu_usage_containerN_on_node1) / (number_cpu_cores_node1)

You can run this command directly on the node to see the current CPU utilization that will be displayed:

docker stats --all --format "table {{.CPUPerc}}" --no-stream | awk -F'%' '{sum+=$1}END{"grep -c ^processor /proc/cpuinfo"|getline cores;print sum/cores}'

From UCP 3.1.x, the CPU utilization cannot be higher than 100% and the same value is displayed in both the graph and associated table.