sh port-channel traffic showing 100% utilization

I have recently come across the situation where I needed to verify port utilization on some uplinks. Since the uplinks utilize port-channel aggregation (EtherChannel/LACP) I have issued show port-channel traffic command on my N5Ks.

N5K1# sh port-channel traffic
ChanId Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
—— ——— ——- ——- ——- ——- ——- ——-
10 Eth1/41 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-
11 Eth1/42 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-
20 Eth1/10 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-

N5K2# sh port-channel traffic
ChanId Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
—— ——— ——- ——- ——- ——- ——- ——-
10 Eth1/41 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-
11 Eth1/42 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-
20 Eth1/10 100.00% 100.00% 100.00% 100.00% 100.00% 100.00%
—— ——— ——- ——- ——- ——- ——- ——-

Seeing port-channel utilization to be at 100% its not a good sign so I went ahead and checked the interface level utilization.

N5K1# sh int e1/41 | in Load|input
30 seconds input rate 320 bits/sec, 0 packets/sec
Load-Interval #2: 5 minute (300 seconds)
input rate 13.63 Kbps, 1 pps; output rate 61.65 Kbps, 20 pps
906659207856 input packets 1090064033731077 bytes
0 input error 0 short frame 0 overrun 0 underrun 0 ignored
0 input with dribble 0 input discard

From the output you can see the interface is barely used so why is it showing 100% on port-channel traffic command?

It is because show port-channel traffic is very misleading command which doesn’t provide load/bandwidth utilization but just statistics for its members. Since this port-channel is part of vPC (virtual port-channel) the server connects to two different switches. From the server side point of view it seems like the northbound uplink is going to one switch where in reality server is dual homed as shown in Fig.1.

Nexus vPC
Fig.1

So, what the statistics tells us is correct. Since the server is dual homed on the switch side you’ll have only one interface part of the port-channel (vPC). Statistically it needs to be 100% because there is no other interface part of the same port-channel. Port-channel in question is Po10 which only holds one member (eth1/41).

N5K1# sh port-channel summary
Flags: D – Down P – Up in port-channel (members)
I – Individual H – Hot-standby (LACP only)
s – Suspended r – Module-removed
S – Switched R – Routed
U – Up (port-channel)
M – Not in use. Min-links not met
——————————————————————————–
Group Port-Channel Type Protocol Member Ports
——————————————————————————–
1 Po1(SU) Eth LACP Eth1/47(P) Eth1/48(P)
10 Po10(SU) Eth LACP Eth1/41(P)

To compare that vPC port-channel with i.e. Po1 that contains more members results for port-channel traffic will be different:

N5K1# sh port-channel traffic
ChanId Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
—— ——— ——- ——- ——- ——- ——- ——-
1 Eth1/47 28.86% 0.00% 85.53% 85.92% 0.0% 0.0%
1 Eth1/48 71.13% 99.99% 14.46% 14.07% 0.0% 0.0%

That proves that port-channel traffic for single member will always show 100% because there is no other interface on the same switch to balance the traffic.  vPC peer-link doesn’t share this information between the other peer so the traffic information will be misleading.  Always check statistics on the interface level to verify your throughput and potential bottlenecks.

Regards,
Bart

Add a Comment

Your email address will not be published. Required fields are marked *