KBI 311145 How Linux CPU Usage Scripts Work
Version
Argent Guardian Ultra — All Versions
Date
Updated Fri, 13 Mar 2015
Summary
There are two ways that Argent monitors CPU usage for Linux machines.
Depending on which pre-defined Rule you are using, the method of obtaining CPU usage may be different.
This KBI goes through the logic used in each type of script.
Technical Background
SCP_LINUX_CPU_OVERLOAD
In SCP_LINUX_CPU_OVERLOAD, Argent uses the ‘ps’ command to retrieve every process (using the -e switch) with the % CPU usage(-o pcpu) for each process on the Linux system.
The command also returns the Process ID (PID), and the command line for each process.
ps -e -o pid,pcpu,comm
The Rule checks if the CPU Total exceeds the predefined threshold CPU percentage.
The CPU Total is obtained by iteratively summing up the CPU usage of each process.
SCP_LINUX_PDT_CPU_UTIL
In SCP_LINUX_PDT_CPU_UTIL, Argent uses the ‘vmstat’ command to retrieve CPU utilization for the system.
vmstat 1 2 | awk ‘ { if ( NR == 4 ) print $NF } ‘
The script will subtract the idle (“id”) column from 100% to obtain the system’s CPU usage:
METRIC=`expr 100 – $CPU_IDLE`
Note: Different versions of Linux may have the Idle CPU on a different column; some columns may not even exist – here is a list of what each column moves:
- us: Time spent running non-kernel code.
- sy: Time spent running kernel code.
- id: Time spent idle.
- wa: Time spend waiting for IO.
- st: Time stolen from a virtual machine.
If values seem to be off, the Idle CPU (id) may be on a different column than what the script is expecting.
Argent can assist customers to update the script as long as the customer can provide a screenshot of the output of the command “vmstat 1 2” when executed on the target server (either through SSH or Telnet)
Resolution
N/A