This article describes how the CLI "show cpu" command output values are calculated.This article describes how the CLI "show cpu" command output values are calculated.
Goal: To provide information on how CPU utilization and load averages are derived.
Understanding How CPU Utilization and Load Averages Are Calculated
Both CPU Utilization and Load averages are calculated by the health agent on the CPM.
The load average calculation is derived from the value(s) contained in
/proc/loadavg from each AP/CP module.
In versions XOS 8.0.x and prior, the CPU utilization calculation is derived from the values contained in
/proc/uptime from each AP/CP module. The
/proc/uptime has two numbers. The first value is the system time. The second value is the idle time.
The health agent takes samples of the values contained in
/proc/uptime at intervals. Taking a delta of the system time with the delta of idle time over that interval results the CPU utilization value. The health agent will calculate the average of these values over 1 minute, 5 minute and 15 minute time periods. These values are represented by the
CPU_Util15 average output.
/proc/uptime only represents CPU0, not per CPU/core.
This problem is corrected in versions XOS 8.1 and above, because the CPU utilization calculation is derived from the values contained in
proc/stats from each AP/CP module.
/proc/stat contains detailed information on a per CPU/core basis, which allows for a more accurate representation of CPU utilization. In addition, the utilization is calculated by each AP/CP module's health agent, respectively, which then reports these values to the CPM's health agent.
The very first "cpu" line of
/proc/stat aggregates the numbers in all of the other "
These numbers identify the amount of time the CPU has spent performing different kinds of work.
The meanings of the columns are as follows, from left to right:
* user: normal processes executing in user mode
* nice: niced processes executing in user mode
* system: processes executing in kernel mode
* idle: twiddling thumbs
* iowait: waiting for I/O to complete
* irq: servicing interrupts
* softirq: servicing softirqs
Imported Document ID: 000020299
Subscribing will provide email updates when this Article is updated. Login is required.