Cisco Nexus 3064PQ CPU 峰值导致丢包

网络工程 思科 路由 转变 数据包丢失 中央处理器
2021-08-01 06:25:25

在此处输入图片说明

Nexus 3064 CPU 尖峰和丢包我有 L3 Cisco 3064PQ 交换机,它运行最新的“nxos.7.0.3.I4.7.bin”基本上我用于路由,所以我的 ISP 2x10Gbps 链路在单个交换机上终止(使用 LACP)(没有STP、vPC)它和当前的实时流量在交换机上是 10Gbps,但我注意到周期性的数据包丢失并且不确定它来自哪里,挖掘后我发现当我的 CPU 峰值高达 70% 时我看到数据包丢失。

如果您在下图中注意到 60% 的峰值,同时我注意到 1 个 ping 数据包丢失。我如何调试这个问题并找出那个长矛是什么以及为什么它会定期发生

    111113641111 11 111 11 11 1  11   1   1 11  1 11     11 12
    011245362136900971084282051974067736846931972921847680082588
100
 90
 80
 70
 60       #
 50       ##
 40      ###
 30      ###                                                 #
 20      ###   #    #                     #                  #
 10 ##################################### ########### ##########
    0....5....1....1....2....2....3....3....4....4....5....5....
              0    5    0    5    0    5    0    5    0    5

               CPU% per second (last 60 seconds)
                      # = average CPU%



    655647776676716562796267574676486635666266736656375765565666
    389694233637271934049753800212280577262865100886229818827948
100
 90                    *           *
 80                    *           *                   *
 70    * *** ****     *** ** *  *  * *   *  ***  * * * *     * *
 60 **** ******** *** *** **** *** *** **** *** **** ***********
 50 ************* *** *** **** *** *** **** *** **** ***********
 40 ************* *** *** ***************** *** **** ***********
 30 ************* *** ******************************************
 20 ***#**###**##******#***#*#*#***#******#**#**#****#**********
 10 ############################################################
    0....5....1....1....2....2....3....3....4....4....5....5....
              0    5    0    5    0    5    0    5    0    5

               CPU% per minute (last 60 minutes)
              * = maximum CPU%   # = average CPU%

更新

在下面的示例中,您可以看到50%尖峰t2usd吃掉更多的 CPU

  • 注意:我看到 CPU 每 1 分 30 秒出现一次尖峰,它非常准确,我进行了秒表测试,每 1.30 秒出现一次尖峰,同时 ping 下降。

    # show processes cpu sort | 前 0.00

    PID    Runtime(ms)  Invoked   uSecs  1Sec    Process
    -----  -----------  --------  -----  ------  -----------
    12624    641746706  456010193   1407   7.00%  t2usd
       27   1262455737  1006811706   1253   4.00%  ksmd
    11145    288596961  111352447   2591   2.00%  pfmclnt
    11367          113       253    448   1.00%  arp
    11402          200       349    575   1.00%  netstack
    CPU util  :   51.33% user,    9.62% kernel,   39.03% idle
    Please note that only processes from the requested vdc are shown above
    

第二个尖峰

 # show processes cpu sort | ex 0.00

   PID    Runtime(ms)  Invoked   uSecs  1Sec    Process
-----  -----------  --------  -----  ------  -----------
12624    641774351  456031502   1407  26.50%  t2usd
   27   1262516503  1006859899   1253   8.00%  ksmd
11367          113       253    448   2.00%  arp
11371          149       106   1406   2.00%  pktmgr
12764      5010346  18794402    266   2.00%  ipfib
11356           79        43   1838   1.00%  adjmgr
11402          200       349    575   1.00%  netstack
12261          116        65   1799   1.00%  rpm
12271      3321325  27299929    121   1.00%  ipfib
12334     23532716  29888867    787   1.00%  l2fm
CPU util  :   57.83% user,    5.40% kernel,   36.75% idle
Please note that only processes from the requested vdc are shown above

更新 2

这是否与CoPP,默认在 Nexus 交换机上启用https://supportforums.cisco.com/t5/data-center-documents/packet-loss-when-ping-from-to-a-nexus-7000/ta-p /3110226

它不应该影响转发流量吗?

1个回答

解决方案

这是我一生中最有趣的问题,所以请屏住呼吸......!

注意到 CoPP 在收集和 arp 中下降

# show policy-map interface control-plane
...
...
class-map copp-s-glean (match-any)
      police pps 500
        OutPackets    3371
        DropPackets   19911477

看起来像 arp 相关的问题,sh ip arp显示每约 85 秒我的 arp 表就会被刷新,所以这里有些不对劲……是什么触发了 arp-flood?

让我们在 STP 中进行调查,因为这可能是 arp 的问题,嗯,基于以下输出,在 e1/36

SW1# show spanning-tree detail | inc ieee|occurr|from
  Number of topology changes 4 last change occurred 3287:50:33 ago
          from port-channel1
  Number of topology changes 139 last change occurred 141:18:14 ago
          from Ethernet1/47
  Number of topology changes 139 last change occurred 309:32:43 ago
          from Ethernet1/47
  Number of topology changes 5867 last change occurred 260:38:12 ago
          from Ethernet1/47
  Number of topology changes 154 last change occurred 309:32:42 ago
          from Ethernet1/47
  Number of topology changes 118639 last change occurred 0:01:06 ago
          from Ethernet1/36
  Number of topology changes 124315 last change occurred 0:01:06 ago
          from Ethernet1/36

在端口 e1/36 上又连接了一个 nexus 交换机,所以让我们看看,嗯,e1/24 刚刚发生了一些变化

SW2# show spanning-tree detail | inc ieee|occurr|from
  Number of topology changes 5744 last change occurred 260:40:25 ago
          from Ethernet1/1
  Number of topology changes 221898 last change occurred 0:00:38 ago
          from Ethernet1/24
  Number of topology changes 221905 last change occurred 0:00:38 ago
          from Ethernet1/24
  Number of topology changes 49 last change occurred 309:34:56 ago
          from Ethernet1/1

关闭端口 e1/24 后问题解决了 :) 没有 CPU 尖峰,也没有丢包。

我有打开的票来找出连接到 e1/24 的设备(我相信它的服务器,但让我们看看)