CPU占用率高问题处理方法
H3C S9500、Quidway S8500交换机在发现CPU占用率高时的处理方法如下:
第一步、确认CPU占用率高的单板
使用display CPU命令察看各槽位单板CPU占用率情况;
[H3C]display cpu
…………
Board 6 CPU busy status:
35% in last 5 seconds
59% in last 1 minute
51% in last 5 minutes
Board 7 CPU busy status:
13% in last 5 seconds
13% in last 1 minute
13% in last 5 minutes
Board 8 CPU busy status:
28% in last 5 seconds
23% in last 1 minute
18% in last 5 minutes
…………
正常的单板CPU占用率一般都是在20%以内的。但有时单板CPU的占用率有可能瞬间升高,比如在通过Telnet方式收集设备诊断信息时。此时,应根据单板的5分钟内的平均占用率来判断该单板的CPU占用率是否异常。比如在上面的例子中可以判断出6号槽位的单板CPU占用率异常。另外,还需要隔半分钟或一分钟重复查看几次CPU占用率,以此来判断CPU占用率的变化情况。
第二步、察看并确认CPU占用率高是否对CPU处理报文造成影响
一般来说,当CPU占用率高时,会造成CPU无法响应或处理部分上CPU的协议报文,从而对网络造成相应的影响。在诊断模式下使用_txerr display
slot
[H3C]_
[H3C_hidecmd]_d c v \\该命令将显示隐藏模式和诊断模式下的隐含命令
[H3C-hidecmd]en
[H3C-testdiag]_txerr display slot 6 clear (V5平台直接输入)
Tx queue status:
TxResPkt=0 TxResBf=0 TxResFailPkt=0
Tx queue status:
TxQueLen=0 TxQuePtr=1642
TxTaskPtr=1642 TxInQueueErr=0
Rec int statistics:
intGenScan =612387
616 624 632 0 584 616 624 632 0 584
616 624 632 0 584 616 624 632 0 584
………….
616 624 632 0 584 616 624 632 0 584
616 624 632 0 584 616 624 632 0 584
Rec control statistics:
RecInt =6975
Rec Max speed statistics:
60 22 19 43
0 0 0 59
110
Rec AU statistics:
22
Rec discard statistics:
0 0 0 29
0 0 0 0
Rec AU discard statistics:
0
\\在Rec discard statistics下面的数值从左至右从上到下,分别代表0、1、2、3对列和4、5、6、7对列
第三步、查看是哪个任务进程运行异常造成CPU占用率高
在隐含模式下,用_system-monitor命令察看CPU各进程运行情况;(V5平台,隐藏模式下直接用display cpu-usage slot 6)
[H3C]_
[H3C-hidecmd]
[H3C-hidecmd]_system-monitor start \\打开监控开关后
[H3C-hidecmd]_system-monitor stop \\监控5秒后关闭监控开关
[H3C-hidecmd]_system-monitor print 6 \\并查询指定槽位单板的任务信息
[H3C-hidecmd]
*0.8361548 S9500 DRVL2/8/DBG_DBG:Slot=4;
Total Monitoring time 10718 ms
Task Name Max Run(ms) Max Pend(ms) Running(ms) Percent(%)
---------------------------------------------------
RPCQ 0 0 0 0.00
WEIL 10 98 4991 6.56
SYST 1 87 103 0.96
…………
HAND 1 1061 2 0.01
PRX0 87 13 4522 2.19
PRX1 0 0 0 0.00
BOTT 1 2101 2 0.01
zhTx 4 189 394 3.67
L2ST 1 98 94 0.87
L2Ma 1 4990 33 0.30
L2Ch 0 0 0 0.00
L3MC 1 98 98 0.91
…………
常用CPU进程说明及协议报文上送CPU对列说明
WEIL系统空闲进程
co0控制台进程
ROUT路由协议进程,其中包括组播路由
AGNT SNMP网管代理进程
TRAPSNMP网管陷阱进程
NTPTNTP网络时间进程
L2PS接口板端口状态轮循任务
HAND板间通信握手进程
PRX0接口板收包进程
zhTx接口板发包任务
第四步、对上CPU报文抓包并分析报文定位故障原因
捕捉上CPU报文有2种方法:
1)镜像上CPU报文到物理接口
使用cpu-mirror命令镜像上CPU报文到交换机物理接口,并连接PC进行抓包分析,定位CPU占用率高的原因;该命令适用于1235或者1270之后的版本,该命令在1226-1233版本和1265-1269版本存在致命缺陷,请不要使用。使用该命令抓包完成后请立即通过undo命令关闭该功能。
[H3C]cpu-mirror slot 8 mirrored-to e2/1/1
2)在诊断模式下使用命令在控制台上打印上送CPU的报文
使用命令_rxpkt slot
将打印出来的报文保存为txt文件,转用抓包工具Ethereal换成Ethereal可读格式,然后具体分析是什么报文造成CPU占用率高。
[H3C]en_
[H3C-testdiag]_rxpkt slot 6 length 64 numbers 200
//如无法确认可多执行几次,CPU利用率超过50%慎用
[H3C-testdiag]
*0.4583328 H3C DIAGCLI/6/DBG_NOTICE:Slot=3; [PRX0]:
Time on LPU: 2008-07-05 17:31:38 310ms
Receive packet :
DevNum=12, PhysicalPortNo=49, PacketLen=64, Queue=4, cpucode=248, left=199
vlanID=15, usrPrio=7, DropPre=0
0000: 01 00 5e 00 00 12 00 0f e2 1e 22 04 81 00 e0 0f
0010: 08 00 45 c0 00 28 bd b9 00 00 ff 70 30 8c 0b 9c
0020: e0 b1 e0 00 00 12 21 0f 6e 01 00 01 84 9e 0b 9c
0030: e0 b3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
。。。。。。
在pc上进行转换,然后用etheral打开转化的抓包文件进行分析:
使用etheral工具打开抓包文件,分析哪些地址发出的报文特别多导致设备CPU利用率高,可能是攻击或者发生了环路。
使用etherealplus进行解析。该文件需要放在wireshark或ethereal安装目录下。
2015年10月
本期文章
-
刊首语
-
公司动态
-
行业聚集
-
产品推荐
-
案例介绍
-
经验共享
-
服务明星
-
培训天地