05-11-2018 04:27 PM - edited 05-17-2018 11:26 AM
Many times you want to know the load of the npu and this functionality enables you to verify NP utilization or NP performance load. This helps you to perform load balancing based on NP utilization. To address this a new CLI has been added into asr9k XR code from 6.5.1 release to calculate an approximate load. This takes a look at each stage of the microcode forwarding engines, and finds the percent utilization at each stage of potential bottleneck. The NP load percent (of 100%) comes from max of NP Parse load, NP Search load, NP Resolve load and NP Modify load. It is presented as the single unified NPU utilization in column 1 below (see "Load" utilization).
Parse is the first stage in the NPU pipeline. The flow is like below. ( Refer cisco live 2904)
Also, refer to feature order of operation
For example if the NP microcode engines for parse was 25% busy, Search is 15% busy, Resolve was 75% busy, and Modify was 12% busy- the max of all 4 (75%) would be presented as the NP's utilization.
The pps rate as seen by microcode parse is also presented in the output in column 2 (see below - 'Packet Load' in pps). Packets may be dropping, so this number (pps) is only a reflection of packets received into the first stage of microcode or Parse.
The sample time for calculating the load is 10ms. It is an instantaneous measurement at the moment the CLI is executed. This feature extended to support telemetry data also. This feature available from 6.5.1 release onwards.
RSP syntax: show controllers np load
(Note: The numbers given below are for illustration purpose only. This varies based on feature enablement and the load)
Usage:
CLI
RSP# show controllers np load Thu Nov 16 13:11:38.620 EST
Node: 0/5/CPU0: ---------------------------------------------------------------- Load Packet Load NP0: 0% utilization 692 pps NP1: 10% utilization 8310642 pps NP2: 0% utilization 596 pps NP3: 0% utilization 596 pps |
Output with multiple traffic load is presented below as tested on A9K-8X100GE-L-SE with 1 port per NP traffic running.
Description of Traffic Load |
Output |
Bidirectional ipv4 Traffic between NP0 & NP1 HundredGig 80 byte packet at 100% line rate |
Fri Oct 13 09:45:24.480 UTC NP Load: Tomahawk NP0: 99% utilization 221549744 pps Tomahawk NP1: 100% utilization 221611328 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 594 pps |
80 byte packet size at 75% line rate |
Fri Oct 13 09:52:18.025 UTC NP Load: Tomahawk NP0: 87% utilization 186534320 pps Tomahawk NP1: 89% utilization 186561360 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 595 pps |
80 byte packet size at 50% line rate |
Fri Oct 13 09:53:15.874 UTC NP Load: Tomahawk NP0: 57% utilization 124339944 pps Tomahawk NP1: 57% utilization 124370800 pps Tomahawk NP2: 0% utilization 693 pps Tomahawk NP3: 0% utilization 594 pps |
80 byte packet size at 25% line rate |
Fri Oct 13 09:53:47.943 UTC NP Load: Tomahawk NP0: 26% utilization 62177012 pps Tomahawk NP1: 23% utilization 62176232 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 594 pps |
IPv4 Traffic configured to drop everything due to: NOT_MY_MAC ( click for drop counter description)
Description of Traffic Load |
Output |
128 byte ipv4 traffic at 100% line rate |
Fri Oct 13 09:08:54.535 UTC NP Load: Tomahawk NP0: 100% utilization 84445000 pps Tomahawk NP1: 100% utilization 84450952 pps Tomahawk NP2: 0% utilization 1089 pps Tomahawk NP3: 0% utilization 594 pps |
128 byte ipv4 traffic at 75% line rate |
Fri Oct 13 09:09:43.421 UTC NP Load: Tomahawk NP0: 67% utilization 63333268 pps Tomahawk NP1: 67% utilization 63333796 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 594 pps |
128 byte ipv4 traffic at 50% line rate |
Fri Oct 13 09:10:20.085 UTC NP Load: Tomahawk NP0: 45% utilization 42226704 pps Tomahawk NP1: 44% utilization 42227040 pps Tomahawk NP2: 0% utilization 595 pps Tomahawk NP3: 0% utilization 594 pps |
128 byte ipv4 traffic at 25% line rate |
Fri Oct 13 09:11:09.386 UTC NP Load: Tomahawk NP0: 21% utilization 21113180 pps Tomahawk NP1: 22% utilization 21113618 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 594 pps |
IPv4 Traffic configured to drop everything due to: NOT_MY_MAC
Description of Traffic Load |
Sample Output |
256 byte ipv4 traffic at 100% line rate |
Fri Oct 13 09:12:22.167 UTC NP Load: Tomahawk NP0: 48% utilization 45286380 pps Tomahawk NP1: 48% utilization 45283832 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 12782 pps |
256 byte ipv4 traffic at 75% line rate |
Fri Oct 13 09:13:39.952 UTC NP Load: Tomahawk NP0: 36% utilization 33965536 pps Tomahawk NP1: 36% utilization 33963544 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 594 pps |
256 byte ipv4 traffic at 50% line rate |
Fri Oct 13 09:14:26.093 UTC NP Load: Tomahawk NP0: 24% utilization 22642036 pps Tomahawk NP1: 24% utilization 22642908 pps Tomahawk NP2: 0% utilization 796 pps Tomahawk NP3: 0% utilization 594 pps |
256 byte ipv4 traffic at 25% line rate |
Fri Oct 13 09:15:20.483 UTC NP Load: Tomahawk NP0: 12% utilization 11320538 pps Tomahawk NP1: 11% utilization 11320665 pps Tomahawk NP2: 0% utilization 594 pps Tomahawk NP3: 0% utilization 592 pps |
Sensor path: Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization
Sample configs to enable telemetry: (dial-in)
grpc
port 57400
!
address-family ipv4
max-request-total 256
max-request-per-user 32
telemetry model-driven
!
sensor-group SGroup1
sensor-path Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization
subscription sub1
sensor-group-id SGroup1 strict-timer
sensor-group-id SGroup1 sample-interval 5000
Sample logs:
============
RP/0/RSP1/CPU0:ios#show telemetry model-driven subscription Sub1
Sun Feb 4 04:35:09.098 UTC
Subscription: Sub1
-------------
State: Paused
Sensor groups:
Id: SGroup1
Sample Interval: 5000 ms
Sensor Path: Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization
Sensor Path State: Resolved
Destination Groups:
Group Id: DGroup1
Destination IP: 10.83.108.65
Destination Port: 5432
Encoding: self-describing-gpb
Transport: tcp
State: NA
No TLS
Collection Groups:
------------------
Id: 4
Sample Interval: 5000 ms
Encoding: self-describing-gpb
Num of collection: 52
Collection time: Min: 125 ms Max: 195 ms
Total time: Min: 131 ms Avg: 196 ms Max: 204 ms
Total Deferred: 0
Total Send Errors: 0
Total Send Drops: 0
Total Other Errors: 0
No data Instances: 0
Last Collection Start:2018-02-04 04:34:35.1987373367 +0000
Last Collection End: 2018-02-04 04:34:35.1987505347 +0000
Sensor Path: Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/
Data pushed to VM every 5s:
------- 2018-02-03 22:38:19.27092481 -0500 EST -------
Summary: GPB(common) Message [172.18.53.108:44096(ios)/Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization msg len: 467]
{
"Source": "172.18.53.108:44096",
"Telemetry": {
"node_id_str": "ios",
"subscription_id_str": "Sub1",
"encoding_path": "Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization",
"collection_id": 85,
"collection_start_time": 1517718237937,
"msg_timestamp": 1517718237937,
"collection_end_time": 1517718238138
},
"Rows": [
{
"Timestamp": 1517718238006,
"Keys": {
"node-name": "0/0/CPU0",
"np-name": "np0"
},
"Content": {
"packet-per-second-rate": 596,
"utilization": 0
}
},
{
"Timestamp": 1517718238071,
"Keys": {
"node-name": "0/0/CPU0",
"np-name": "np1"
},
"Content": {
"packet-per-second-rate": 596,
"utilization": 0
}
},
{
"Timestamp": 1517718238137,
"Keys": {
"node-name": "0/3/CPU0",
"np-name": "np0"
},
"Content": {
"packet-per-second-rate": 596,
"utilization": 0
}
}
]
}
------- 2018-02-03 22:38:24.473887665 -0500 EST -------
Summary: GPB(common) Message [172.18.53.108:44096(ios)/Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization msg len: 467]
{
"Source": "172.18.53.108:44096",
"Telemetry": {
"node_id_str": "ios",
"subscription_id_str": "Sub1",
"encoding_path": "Cisco-IOS-XR-asr9k-np-oper:hardware-module-np/nodes/node/nps/np/load-utilization",
"collection_id": 86,
"collection_start_time": 1517718243139,
"msg_timestamp": 1517718243139,
"collection_end_time": 1517718243341
},
"Rows": [
{
"Timestamp": 1517718243209,
"Keys": {
"node-name": "0/0/CPU0",
"np-name": "np0"
},
"Content": {
"packet-per-second-rate": 577,
"utilization": 0
}
},
{
"Timestamp": 1517718243273,
"Keys": {
"node-name": "0/0/CPU0",
"np-name": "np1"
},
"Content": {
"packet-per-second-rate": 596,
"utilization": 0
}
},
{
"Timestamp": 1517718243340,
"Keys": {
"node-name": "0/3/CPU0",
"np-name": "np0"
},
"Content": {
"packet-per-second-rate": 615,
"utilization": 0
}
}
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: