Network Management

How we poll CPU for Net-SNMP devices (Linux and F5s)

This article provides information on how Orion polls CPU CPU for Net-SNMP devices (Linux and F5s). There are 3 types of POLLERS for CPU with NET-SNMP. Four if you include 4th option we have added for F5s.

First published date

11/6/2018 2:45 AM

Last published date

4/9/2025 5:29 PM

Overview

  • There are 3 types of POLLERS for CPU with NET-SNMP.
  • Four types of polling jobs, if you include 4th option we have added for F5's.

Product section

Orion Platform

Resolution

N.Cpu.SNMP.NetSnmpCpuIdle 

 

OID = ssCPUIdle

1.3.6.1.4.1.2021.11.11.0

Formula:
CPU Load = 100 – CPUIdle              (example CPUIdle = 0 THEN CPULoad = 100 -0 = 100% Utilized)  

Cpu.SNMP.CpuNetSnmpCpuIdle
N.Cpu.SNMP.NetSnmpCpuIdle

CPU poller for devices which support UCD-SNMP-MIB (NetSNMP on varios Unix based OS) 
Poller utilizes single GET-REQUEST which contain OID:
SsCpuIdle = 1.3.6.1.4.1.2021.11.11.0

 


N.Cpu.SNMP.NetSnmpSystemStats 

 

                
             ssCPURawIdle = 1.3.6.1.4.1.2021.11.53.0
             Now ships with latest Versions of NPM:

         
             UnDp: https://thwack.solarwinds.com/docs/DOC-101021
           
Please note that Thwack is a community space where users may post any content as a suggestion or recommendations to you for your internal use. The information set forth herein may come from third-party websites or customers. SolarWinds is not liable for any downtime or any issue that may occur if you perform the following suggestions on the link provided. Your organization should internally review and assess to what extent, if any, such custom scripts or recommendations will be incorporated into your environment.
               
             Firstly, Net-SNMP v5.4.2.1 and above depreciated ssCPUIdle as it is buggy.
            (with the value of the OID reporting wrong at times) with the hrProcessorLoad. 
             Request you to upgrade to at least 5.4.2.1, or to go ahead with recommendation to 5.5: http://www.net-snmp.org
            If not polling, but old poll is showing in Nodes table, reset CPU as follows,
            get NodeID from Node Details Web URL.
            UPDATE Nodes SET CPULoad = -2 WHERE NodeID = 170

    • OID_ssCpuRawIdle
    • OID_ssCpuRawInterrupt
    • OID_ssCpuRawKernel
    • OID_ssCpuRawNice
    • OID_ssCpuRawSystem
    • OID_ssCpuRawUser
    • OID_ssCpuRawWait


Formula:
Total = mTotalCpuRawIdle + mTotalCpuRawInterupt + mTotalCpuRawKernel + mTotalCpuRawNice + mTotalCpuRawSystem + mTotalCpuRawUser + mTotalCpuRawWait
CPULoad = 100 - (mTotalCpuRawIdle * 100) / (Total)
 

Cpu.SNMP.CpuNetSnmpSystemStats
N.Cpu.SNMP.NetSnmpSystemStats

CPU poller for devices which support UCD-SNMP-MIB (NetSNMP on varios Unix based OS) 
Poller utilizes single GET-REQUEST which contains OIDs:
SsCpuRawIdle = 1.3.6.1.4.1.2021.11.53.0
SsCpuRawInterrupt = 1.3.6.1.4.1.2021.11.56.0
SsCpuRawUser = 1.3.6.1.4.1.2021.11.50.0
SsCpuRawKernel = 1.3.6.1.4.1.2021.11.55.0
SsCpuRawSystem = 1.3.6.1.4.1.2021.11.52.0
SsCpuRawWait = 1.3.6.1.4.1.2021.11.54.0
SsCpuRawNice = 1.3.6.1.4.1.2021.11.51.0

 


HRProcessorLOAD: 

 


        Orion, by default tries to poll the CPU utilization in the Host-Resources MIB
        HOST-RESOURCES-MIB - hrProcessorLoad  1.3.6.1.2.1.25.3.3.1.2

And takes result of that OID and stores as follows:
100.0 * (Sample2 – Sample1) / (TimeInSeconds2 – TimeInSeconds1)


Also you can just browse the MIB walks they see types of results you would get.
Value stored in CPU in Nodes and CPULoad_Detail is all four values above divided by 4

Orion, by default tries to poll the CPU utilization in the Host-Resources MIB

HOST-RESOURCES-MIB

1.3.6.1.2.1.25.3.3.1.2.1

hrProcessorLoad.1

25

HOST-RESOURCES-MIB

1.3.6.1.2.1.25.3.3.1.2.2

hrProcessorLoad.2

9

HOST-RESOURCES-MIB

1.3.6.1.2.1.25.3.3.1.2.3

hrProcessorLoad.3

9

HOST-RESOURCES-MIB

1.3.6.1.2.1.25.3.3.1.2.4

hrProcessorLoad.4

12

Cpu.SNMP.CpuHrProcessorLoad
N.Cpu.SNMP.HrProcessorLoad

CPU poller for devices which support HOST-RESOURCES-MIB (Windows) 
Poller utilizes GetSubTree to gather CPU Load for all installed cores using OID:
HrProcessorLoad = 1.3.6.1.2.1.25.3.3.1.2

 


Linux F5 CPU Poller 

 

N.Cpu.SNMP.F5BigIpSystemHostHost CPU performance statistics poller for F5 Big-IP devices which support F5-BIGIP-SYSTEM-MIB 
Poller utilizes single GetTable which contains OIDs:
  • sysGlobalHostCpuUser = 1.3.6.1.4.1.3375.2.1.1.2.20.6.0
  • sysGlobalHostCpuNice = 1.3.6.1.4.1.3375.2.1.1.2.20.7.0
  • sysGlobalHostCpuSystem = 1.3.6.1.4.1.3375.2.1.1.2.20.8.0
  • sysGlobalHostCpuIdle = 1.3.6.1.4.1.3375.2.1.1.2.20.9.0
  • sysGlobalHostCpuIrq = 1.3.6.1.4.1.3375.2.1.1.2.20.10.0
  • sysGlobalHostCpuSoftirq = 1.3.6.1.4.1.3375.2.1.1.2.20.11.0
  • sysGlobalHostCpuIowait = 1.3.6.1.4.1.3375.2.1.1.2.20.12.0

CPU load value is computed from two subsequent polls using formula:
  • deltaUser = sysGlobalHostCpuUser[cur] - sysGlobalHostCpuUser[prev]
  • deltaNice = sysGlobalHostCpuNice[cur] - sysGlobalHostCpuNice[prev]
  • deltaSystem = sysGlobalHostCpuSystem[cur] - sysGlobalHostCpuSystem[prev]
  • deltaIdle = sysGlobalHostCpuIdle[cur] - sysGlobalHostCpuIdle[prev]
  • deltaIrq = sysGlobalHostCpuIrq[cur] - sysGlobalHostCpuIrq[prev]
  • deltaSofirq = sysGlobalHostCpuSoftirq[cur] - sysGlobalHostCpuSoftirq[prev]
  • deltaIowait = sysGlobalHostCpuIowait[cur] - sysGlobalHostCpuIowait[prev]
  • deltaTotal = deltaUser + deltaNice + deltaSystem + deltaIdle + deltaIrq + deltaSofirq + deltaIowait
  • CPULoad = (deltaUser + deltaNice + deltaSystem) / deltaTotal * 100
N.Cpu.SNMP.F5BigIpSystemHostMultiCpuHost CPU performance statistics poller for F5 Big-IP multi-CPU devices which support F5-BIGIP-SYSTEM-MIB 
Poller utilizes GetSubTree to gather multi core CPU Load using OID:
  • sysMultiHostCpuUsageRatio5m = "1.3.6.1.4.1.3375.2.1.7.5.2.1.35.1.48." (StatCollection 5 mins or greater)
  • sysMultiHostCpuUsageRatio1m = "1.3.6.1.4.1.3375.2.1.7.5.2.1.27.1.48." (StatCollection 1 min or greater and less than 5 mins)
  • sysMultiHostCpuUsageRatio5s = "1.3.6.1.4.1.3375.2.1.7.5.2.1.19.1.48." (StatCollection is less than 1 min)
N.Cpu.SNMP.F5BigIpSystemTmm

TMM CPU performance statistics poller for F5 Big-IP devices which support F5-BIGIP-SYSTEM-MIB 
Poller utilizes single GET-REQUEST which contains OIDs:

  • sysStatTmTotalCycles = 1.3.6.1.4.1.3375.2.1.1.2.1.41.0
  • sysStatTmIdleCycles = 1.3.6.1.4.1.3375.2.1.1.2.1.42.0
  • sysStatTmSleepCycles = 1.3.6.1.4.1.3375.2.1.1.2.1.43.0


CPU load value is computed from two subsequent polls using formula:

  • deltaTotal = sysStatTmTotalCycles[cur] - sysStatTmTotalCycles[prev]
  • deltaIdle = sysStatTmIdleCycles[cur] - sysStatTmIdleCycles[prev]
  • deltaSleep = sysStatTmSleepCycles[cur] - sysStatTmSleepCycles[prev]

Formula = 100-([sysStatTmIdleCycles]/[sysStatTmTotalCycles]*100)?

CPULoad = ((deltaTotal - (deltaIdle + deltaSleep)) / deltaTotal) * 100