Check CPU

Script: check_cpu

It is a plugin to check cpu usage and cpu io wait. It reads cpu data from output of top command and shows

hwi - Time spent handling hardware interrupt routines. (Whenever a peripheral unit want attention form the CPU, it literally pulls a line, to signal the CPU to service it) swi - Time spent handling software interrupt routines. (a piece of code, calls an interrupt routineā€¦) st - Time spent on involuntary waits by virtual cpu while hypervisor is servicing another processor (stolen from a virtual machine)

nice - Time spent running niced user processes (User defined priority) wait - Time spent on waiting on IO peripherals (eg. disk)

system - Time spent in kernel space user - Time spent in user space idle - Time spent in idle operations

For all values it sends performance data.

If there are processes with status D they will be shown (to analyze cpu waits).

Standalone installation

From this repository ypu need next to this script:

  • inc_pluginfunctions shared function for all IML checks written in bash

Syntax

$ check_cpu [-c CRITICAL] [-w WARING] [-i CRITICAL_IO]

Parameters

    -w VALUE       cpu usage warning level  (default: 75)
    -c VALUE       cpu usage critical level (default: 90)

    -i VALUE       io wait critical level   (default: 50)

    -h or --help   show this help.

Examples

check_cpu -w 60 -c 80 -i 40 check cpu usage. It shows a warning if usage is higer 60%. It shows critical status if usage is higer 80% or io wait is 40%

./check_cpu -w 60 -c 80 -i 40
OK: CPU-USAGE [%] 11.3 ... user: 6.2 - system: 4.1 - idle: 88.7 - wait: 0.0

Limits: usage warn at 60 .. critical at 80 .. io wait limit 40
INFO  : cpu is in normal ranges.

Legend:

   hwi - Time spent handling hardware interrupt routines. (Whenever a peripheral unit want attention form the CPU, it literally pulls a line, to signal the CPU to service it)
   swi - Time spent handling software interrupt routines. (a piece of code, calls an interrupt routine...)
    st - Time spent on involuntary waits by virtual cpu while hypervisor is servicing another processor (stolen from a virtual machine)

  nice - Time spent running niced user processes (User defined priority)
  wait - Time spent on waiting on IO peripherals (eg. disk)

system - Time spent in kernel space
  user - Time spent in user space
  idle - Time spent in idle operations

 |cpu-usage=11.3;60;80;0;100 cpu-wait=0.0;;40;0;100 cpu-system=4.1;;;0;100 cpu-user=6.2;;;0;100 cpu-idle=88.7;;;0;100 cpu-nice=0.0;;;0;100 cpu-hwi=0.5;;;0;100 cpu-swi=0.5;;;0;100 cpu-st=0.0