标签:信息采集 本机 开启 报文 情况 infinite 过多 output packet
交换机CPU使用率高问题定位display cpu-usage [ slot x ]
display cpu-defend statistics
协议上送过多判断标准:该协议对应的Drop列有大量计数,且相对于Pass计数占比较高,例如上表中的arp-request类型。
display logbuffer
定位思路
故障描述:交换机产生CPU_USAGE_HIGH告警:
备注:
如果网管需要主动监测CPU使用率,可通过OID:1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5获取。
第一步:检查CPU占用率及TOP任务
可以通过CPU使用率查询功能进一步核实TOP任务中是否包含有收包任务;可以通过slot指明查询的槽位号。
第二步:确认报文类型
ARP通过display interface检查哪些接口存在Broadcast数量异常,并在此接口配置广播流量抑制,限制单个接口广播速率(例如限制为50pps):
broadcast-suppression pps 50.
DHCP请确认本机是否需要开启DHCP,如果不需要请在全局undo dhcp enable;
如果需要,建议在下行接口开启dhcp error-down功能(具体信息请参考用户手册):
#
dhcp snooping check dhcp-rate enable
dhcp snooping check dhcp-rate trigger error-down
并建议通过基于dhcp报文的流量统计功能,来发现哪个接口发送了过多的DHCP报文。
第三步:按协议类型分别处理-2
#
interface vlanif1000
arp-fake expire-time 30
#
TTL-EXPIRED
如果不需要本机在tracert中显示,建议丢弃此类报文:
#
cpu-defend policy test
deny packet-type ttl-expired
#
Cpu-defend-policy test global
Cpu-defend-policy test
#
第三步:按协议类型分别处理-3
Reserved-multicast
此类报文一般属路由协议报文,目的IP地址224.0.0.X,如果设备不需要此类报文(或者启用OSPF路由但未起组播功能),可以直接丢弃处理(或者升级到最新版本):
#
cpu-defend policy test
deny packet-type reserved-multicast
#
Cpu-defend-policy test global
Cpu-defend-policy test
#
第三步:按协议类型分别处理-4
ND/ICMPV6/DHCPV6
如果本机不需要IPV6功能,建议直接丢弃此类报文:
#
cpu-defend policy test
deny packet-type nd
deny packet-type icmpv6
deny packet-type dhcpv6-request
deny packet-type dhcpv6-reply
#
Cpu-defend-policy test global
Cpu-defend-policy test
第三步:按协议类型分别处理-5
信息搜集
搜集cfcard中的logfile目录下的日志信息,针对没有cfcard的盒式设
备,请通过如下命令搜集:
display logbuffer
display trapbuffer
搜集设备诊断信息,命令为:
display diagnostic-information
搜集cpu-defend统计信息(10分钟内多搜集几次)
isplay cpu-defend statistics all
CPU Usage : 38% Max: 99%
CPU Usage Stat. Time : 2013-01-06 03:08:57
CPU utilization for five seconds: 38%: one minute: 33%: five minutes: 35%.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
BOX 0% 0/ 18f78e BOX Output
_TIL 0% 0/ 0 Infinite loop event task
_EXC 0% 0/ 0 Exception Agent Task
VIDL 61% 0/b7abe65c DOPRA IDLE
TICK 0% 0/ 143074e
STND 0% 0/ b3412 STNDStandby task
EOAM 24% 0/4994c174 EOAMEthernet OAM 802.1ag
3.通过display task查找任务对应的taskid,例如EOAM的taskid为79:
[Quidway-hidecmd] display task [ slot x ] -- 可指定槽号
name Tid VOS_Tid priority Status CPU Total(Millsecs)
==============================================================================
BOX 0x6ec5230 1 8 sleep 36830
_TIL 0x6ebaf90 2 250 eventblock 0
_EXC 0x6eb0cf0 3 135 eventblock 0
VIDL 0x6ea6a50 4 1 preemptready 79669745
TICK 0x6e9c7b0 5 205 preemptready 476396
STND 0x6daa8b0 6 80 eventblock 18097
FTPS 0x6dbc240 7 100 sleep 230536
DEV 0x6e7ffd0 8 140 eventblock 14818
TCTL 0x6c6a460 77 100 eventblock 45
NAP 0x6c601c0 78 100 eventblock 45
EOAM 0x6c55f20 79 100 eventblock 29468818
TRAF 0x6c4bc80 80 100 eventblock 25659
SLAG 0x6c419e0 81 100 eventblock 56
4.根据taskid设置监控阀值。阀值的设置可参考相应任务的现有占用率,如上面的EOAM模块CPU利用率为24%,那么我们设置监控比这个值低一点,例如设置成20%,具体命令为:
set task-monitor-record threshold [threshold] taskid [taskid]
[Quidway-hidecmd]set task-monitor-record threshold 20 taskid 79 [ slot x ] – 可指定槽号Task Monitor ha
s been set on slot 5, TaskId is 79, Threshold is 5
5.查看任务监控记录,具体命令为:
display task-monitor-record
[Quidway-hidecmd] display task-monitor-record [ slot x ] – 可指定槽号
=========== Task Cpu-usage Monitor Record (slot: 5) ===========
Current Index: 0
6.最后,必须要关闭任务监控,具体命令为:
set task-monitor-record threshold 1 taskid 0。设置taskid为0,就表示关闭任务监控记录。
[Quidway-hidecmd]set task-monitor-record threshold 1 taskid 0[ slot x] –可指定槽号Task Monitor has been closed on slot 5
7.如果是接口板CPU占用率高,需要按照上述1~6步骤搜集相应接口板槽位的任务监控信息(相应的命令行中指定slot即可)。
技
术
是
用
来
学
的
,
不
是
用
来
收
藏
的
!
标签:信息采集 本机 开启 报文 情况 infinite 过多 output packet
原文地址:https://blog.51cto.com/15047492/2560800