电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 191|回复: 0

交换机cpu占用率高的分析方法

[复制链接]
admin 发表于 2024-7-14 15:25:41 | 显示全部楼层 |阅读模式
交换机占用率高一般有可能是以下4种原因:
1、硬件故障引起
2、网络攻击引起
3、网络震荡引起
4、网络环路引起

1、硬件故障只能通过断电重启来测试,如果不行只能更换硬件了。
2、导致CPU占用率高的原因,很大一部分是由于网络攻击引起,常见的网络攻击包括ARP、ARP-Miss以及DHCP等协议报文攻击

网络攻击的定位方法
使用display version和display device命令查看交换机的版本信息及部件类型,将获取的信息记录下来,以供后续排查时使用。
使用display cpu-defend statistics命令查看上送CPU报文的统计信息,判断是否存在过多由于来不及处理而丢弃的协议报文。
a、执行reset cpu-defend statistics命令,清除上送CPU报文的统计信息。
b、隔几秒display cpu-defend statistics命令,查看上送CPU报文的统计信息。
如果观察到某种协议增加报文过多,可考虑是网络攻击
网络攻击的定位方法,请参考https://support.huawei.com/enter ... 1000075592/dd386c99
3、网络震荡引起的cpu占用率高
在STP频繁震荡时,设备需要不断进行STP拓扑计算,更新MAC表、ARP表等转发表,引起CPU占用率高。
判断方法:
可以通过隔几秒连续执行display stp topology-change命令查看当前STP的拓扑变化信息,也可以查看设备输出的告警和日志信息观察设备是否产生过STP拓扑变化。
# 隔几秒连续执行一次该命令,查看设备上STP拓扑变化统计信息,观察“Number of topology changes”是否有增长。

<HUAWEI> display stp topology-change
CIST topology change information
   Number of topology changes             :35              观察 数字35是否会有增加,如果数字从35变成36,就说明拓扑变化了一次
   Time since last topology change        :0 days 1h:7m:30s
   Topology change initiator(notified)    :GigabitEthernet2/0/6
   Topology change last received from     :101b-5498-d3e0
   Number of generated topologychange traps :   38
   Number of suppressed topologychange traps:   8

MSTI 1 topology change information
   Number of topology changes             :0
确认存在频繁的网络拓扑变化后,隔几秒连续执行display stp tc-bpdu statistics命令查看端口接收到的TC-BPDU统计,以确定TC(Topology Change)报文的来源,找到发送拓扑变化的设备。
<HUAWEI> display stp tc-bpdu statistics  
-------------------------- STP TC/TCN information --------------------------
MSTID Port                    TC(Send/Receive)      TCN(Send/Receive)
0     GigabitEthernet2/0/6        21/4                  0/1
0     GigabitEthernet2/0/7        93/0                  0/1
0     GigabitEthernet2/0/8        115/0                 0/0
0     GigabitEthernet2/0/9        110/0                 0/0
0     GigabitEthernet3/0/23       29/5                  0/0
如果显示信息中只有“TC(Send)”计数增长,表明是本设备发生拓扑变化,产生STP震荡。(本设备如果没有Receive报文,只有发送,那么报文就是本设备产生的)
如果只是单个接口的“TC(Send)”计数增长,确定是该接口产生震荡。 (本接口如果没有Receive报文,只有发送,那么报文就是本设备产生的)
如果是多个接口的“TC(Send)”计数增长,请查看网管事件和日志信息分析STP拓扑变化的根因,确定是哪个端口产生震荡。
如果显示信息中“TC(Send/Receive)”计数均有增长,先查看本设备网管事件和日志信息排查本设备是否发生拓扑变化,产生STP震荡,再排查与发生问题的端口连接的设备是否产生STP震荡。(本设备既接收报文也发送报文,那可能是其他设备发生拓扑变化,然后通知本设备导致报文接收和发送,继续排查问题端口连接了什么设备,排查相邻设备的TC-BPDU情况)
找到拓扑变化的原因后如何处理?
处理建议
打开TC保护的告警开关,帮助管理用户了解设备对TC报文的具体处理情况。
系统视图下,执行命令snmp-agent trap enable feature-name mstp和stp tc-protection,打开TC保护的告警开关。

缺省情况下,设备已启用防拓扑变化攻击功能,在stp tc-protection interval命令指定的生成树协议处理最大数量的TC报文所需的时间内,设备只会处理stp tc-protection threshold指定的最大数量的TC报文。

告警开关打开后,设备会触发MSTP_1.3.6.1.4.1.2011.5.25.42.4.2.15 hwMstpiTcGuarded和MSTP_1.3.6.1.4.1.2011.5.25.42.4.2.16 hwMstpProTcGuarded两个告警。

关于以上告警的详细信息,请参考告警信息。

根据拓扑变化情况进行处理
接入侧端口Up/Down引起的STP拓扑变化
在接口视图下通过stp edged-port enable命令将接入侧端口配置为边缘端口,并在系统视图或STP进程视图下通过stp bpdu-protection命令开启BPDU保护功能。

根桥发生了非预期的变化,即“抢根”
执行display stp命令,观察“CIST Root/ERPC”是否为原预期的端口的MAC地址,如果不是则表示根桥发生了非预期的变化。

在端口视图下通过stp root-protection命令开启根保护功能,保证拓扑的正确性。
另外还有以下几个配置也可以参考:
因为网内有大量的TC报文导致交换机cpu占用率高,华为在手册中提供了以下解决方法,供大家参考。

1、全局配置stp tc-protection

       配置此命令后可以保证设备频繁收到TC报文时,每2秒周期内最多只处理1次表项刷新。从而减少MAC、ARP表项频繁刷新对设备造成的CPU处理任务过多。

2、全局配置arp topology-change disable及mac-address update arp

       当设备收到TC报文后,默认会清除MAC、老化ARP。当设备上的ARP表项较多时,ARP的重新学习会导致网络中的ARP报文过多。配置arp topology-change disable、mac-address update arp后,在网络拓扑变化时,可以根据MAC地址的出接口变化刷新ARP表项出接口。可以减少大量不必要的ARP表项刷新。(V100R006版本开始支持mac-address update arp,V200R001版本开始支持arp topology-change disable命令。)

       另外,在部署STP时,建议配置TC保护功能,所有连接终端的接口配置成边缘端口,这样可以避免某些端口的状态变化引起整个STP网络震荡而重新收敛。在处理CPU高的问题时,多关注CPCAR丢包情况。

您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-9-8 08:58 , Processed in 0.089536 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表