cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
40247
Views
25
Helpful
19
Comments
Vadim Zhovtanyuk
Cisco Employee
Cisco Employee

One of the frequently asked questions is how to monitor CPU utilization on RP, RSP, PRP and Line Cards on IOS-XR based devices using SNMP tools, like MRTG.

Few easy steps described below will help to understand which OIDs have to be used for polling and how differentiate RP, RSP and Line Cards on different platforms.

All examples below, taken from IOS-XR based devices, i.e. CRS, XR12000 and ASR9000 running XR release 4.0.1 with SNMPv2.

Step 1.

snmpwalk for the OID (1.3.6.1.4.1.9.9.109.1.1.1.1.2 ) for the object "cpmCPUTotalPhysicalIndex" gives the PhysicalIndex mapping of cards

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.2

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.2 = INTEGER: 2359704

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.18 = INTEGER: 10154515

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.34 = INTEGER: 33511382

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.50 = INTEGER: 48351593

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.514 = INTEGER: 24635790

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.530 = INTEGER: 38114433

RP/0/RP0/CPU0:CRS#sh platform

Node              Type                     PLIM                         State               Config State

------------- ----------------- ---------------- --------------- -----------------------------------------------

0/0/CPU0        MSC               4OC192-POS/DPT   IOS XR RUN     PWR,NSHUT,MON

0/1/CPU0        MSC               8-10GbE                   IOS XR RUN     PWR,NSHUT,MON

0/2/CPU0        MSC               Jacket Card              IOS XR RUN     PWR,NSHUT,MON

0/3/CPU0        MSC-140G     14-10GbE                 IOS XR RUN     PWR,NSHUT,MON

0/RP0/CPU0   RP(Active)      N/A                          IOS XR RUN     PWR,NSHUT,MON

0/RP1/CPU0   RP(Standby)   N/A                          IOS XR RUN     PWR,NSHUT,MON

Step 2.

It is possible now to figure out which card is what by polling OID (1.3.6.1.2.1.47.1.1.1.1.7) for object "entPhysicalName" using the

values received in step 1

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.2359704

SNMPv2-SMI::mib-2.47.1.1.1.1.7.2359704 = STRING: "0/0/* - cpu"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.10154515

SNMPv2-SMI::mib-2.47.1.1.1.1.7.10154515 = STRING: "0/1/* - cpu"

NMS2% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.33511382

SNMPv2-SMI::mib-2.47.1.1.1.1.7.33511382 = STRING: "0/2/* - cpu"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.48351593

SNMPv2-SMI::mib-2.47.1.1.1.1.7.48351593 = STRING: "0/3/* - cpu"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.24635790

SNMPv2-SMI::mib-2.47.1.1.1.1.7.24635790 = STRING: "0/RP0/* - host"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.38114433

SNMPv2-SMI::mib-2.47.1.1.1.1.7.38114433 = STRING: "0/RP1/* - host"

So, according to the given example we can identify each RP and/or Line Card and given PhysicalIndex.

Step 3

snmpwalk for the OID (1.3.6.1.4.1.9.9.109.1.1.1.1.7) for the object "cpmCPUTotal1minRev" gives the

CPU utilization percent for one minute for the index above and if, for example, we are talking about RP0 and RP1

we should look at the indexes 514 and 530

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.514

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.514 = Gauge32: 2

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.530

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.530 = Gauge32: 1

Corresponding data from the router:

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/rp0/cpu0

CPU utilization for one minute: 2%; five minutes: 3%; fifteen minutes: 3%

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/rp1/cpu0

CPU utilization for one minute: 1%; five minutes: 1%; fifteen minutes: 2%

For other line cards:

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.2

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.2 = Gauge32: 3

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.18

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.18 = Gauge32: 3

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.34

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.34 = Gauge32: 5

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.50

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.50 = Gauge32: 2

Corresponding data from the router:

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/0/cpu0

CPU utilization for one minute: 3%; five minutes: 3%; fifteen minutes: 3%

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/1/cpu0

CPU utilization for one minute: 3%; five minutes: 3%; fifteen minutes: 3%

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/2/cpu0

CPU utilization for one minute: 5%; five minutes: 4%; fifteen minutes: 4%

RP/0/RP0/CPU0:CRSproc cpu loc 0/3/cpu0

CPU utilization for one minute: 2%; five minutes: 2%; fifteen minutes: 2%

Step 4.

Polling the OID (1.3.6.1.4.1.9.9.109.1.1.1.1.8) for the object "cpmCPUTotal5minRev" gives the CPU

utilization percent for 5 minute for the index above and, again, if we are talking about RP0 and RP1

we should look at the indexes 514 and 530

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.8.514

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.8.514 = Gauge32: 2

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.8.530

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.8.530 = Gauge32: 1

And corresponding data from the router:

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/rp0/cpu0

CPU utilization for one minute: 2%; five minutes: 2%; fifteen minutes: 2%

RP/0/RP0/CPU0:CRS#sh proc cpu loc 0/rp1/cpu0

CPU utilization for one minute: 1%; five minutes: 1%; fifteen minutes: 1%

The same approach works for XR12000 routers, as it shown in given example

-Obtaining PhysicalIndex mapping

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.2

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.17 = INTEGER: 26932192

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.33 = INTEGER: 16733769

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.49 = INTEGER: 65129206

RP/0/1/CPU0:XR12000#sh platform

Node                   Type              PLIM                     State              Config State

------------------------------------------------------------------------------------------------------------

0/1/CPU0       PRP(Active)       N/A                  IOS XR RUN     PWR,NSHUT,MON

0/2/CPU0       L3LC Eng 5+     Jacket Card     IOS XR RUN     PWR,NSHUT,MON

0/3/CPU0       L3LC Eng 5+     Jacket Card     IOS XR RUN     PWR,NSHUT,MON

-Verifying which card should be used for polling

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.26932192

SNMPv2-SMI::mib-2.47.1.1.1.1.7.26932192 = STRING: "0/1/CPU0 - host"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.16733769

SNMPv2-SMI::mib-2.47.1.1.1.1.7.16733769 = STRING: "0/2/CPU0 - host"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.65129206

SNMPv2-SMI::mib-2.47.1.1.1.1.7.65129206 = STRING: "0/3/CPU0 - host

-Verifying CPU utilization for one minute (as an example)

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.17

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.17 = Gauge32: 2

Corresponding data from the router from Active PRP, so, without "location" keyword

RP/0/1/CPU0:XR12000#sh proc cpu

CPU utilization for one minute: 2%; five minutes: 2%; fifteen minutes: 1%

And finally, example for ASR9000

-Obtaining PhysicalIndex mapping

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.2

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.2 = INTEGER: 52690955

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.2082 = INTEGER:35271015

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.2.2098 = INTEGER: 8695772

RP/0/RSP0/CPU0:ASR9000#sh platform

Node                         Type                                State                 Config State

----------------------------------------------------------------------------------------------------------

0/RSP0/CPU0     A9K-RSP-4G(Active)       IOS XR RUN      PWR,NSHUT,MON

0/0/CPU0            A9K-4T-E                         IOS XR RUN       PWR,NSHUT,MON

0/1/CPU0            A9K-40GE-E                    IOS XR RUN       PWR,NSHUT,MON

-Verifying which card should be used for polling

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.52690955

SNMPv2-SMI::mib-2.47.1.1.1.1.7.52690955 = STRING: "module 0/RSP0/CPU0"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.35271015

SNMPv2-SMI::mib-2.47.1.1.1.1.7.35271015 = STRING: "module 0/0/CPU0"

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.2.1.47.1.1.1.1.7.8695772

SNMPv2-SMI::mib-2.47.1.1.1.1.7.8695772 = STRING: "module 0/1/CPU0"

-Verifying CPU utilization for one minute (as an example)

NMS% snmpwalk -v2c -c <community_name> <router's IP address> 1.3.6.1.4.1.9.9.109.1.1.1.1.7.2

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.7.2 = Gauge32: 3

Corresponding data from the router:

RP/0/RSP0/CPU0:ASR9000#sh proc cpu

CPU utilization for one minute: 3%; five minutes: 3%; fifteen minutes: 3%

So, the mentioned OIDs should be used on NMS system  for polling IOS-XR based devices to get CPU utilization on different  Line Cards and RP, RSP and PRP

Comments
Farid Akhundov
Level 1
Level 1

Hello Xander,

Surely,I've extracted host template for ASR9001 and ASR9010, which already contains CPU and memory usage templates inside. Just import it to Cacti and try using

Note, that our ASR9001 has RSP0 and LC0(named as Board0); and our ASR9010 has RSP0, RSP1 and 5 boards in slots 0,1,2,4 and 5

If you have LCs in other slots, just update OID in relevant data templates, as explained above

Just tell me, if it doesnt work, maybe something is not exported correctly )

PS - I've updated .zip files, removed some unused data sources )

Igor Mordiuk
Level 1
Level 1

Hey, gentlemen.

I'm trying to pull CPU utilization from ISR43xx

System image file is "bootflash:isr4300-universalk9.03.13.02.S.154-3.S2-ext.SPA.bin"


Cisco IOS Software, ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.4(3)S2, RELEASE SOFTWARE (fc3)

I'm pulling 1.3.6.1.4.1.9.9.109.1.1.1.1.7 and getting different value comparing with sh processes cpu result:

snmpwalk -v 2c -c yvr-ro-calvex 10.31.254.5 1.3.6.1.4.1.9.9.109.1.1.1.1.5
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.5.7 = Gauge32: 16


sh processes cpu
CPU utilization for five seconds: 1%/0%; one minute: 1%; five minutes: 1%

Who can explain why I get two different values and which oid should I use.

piyushchitkara
Cisco Employee
Cisco Employee

Great Article. Is there a way to figure out active RPs from both?

Dharma123
Level 1
Level 1

Hi All,

 

we are trying to get total memory of ASR9k using OID, but we are not getting OID for that.

Please help me on this.

 

We need to get total memory of ASR9k using SNMP

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links