交换机CPU使用率高问题定位.ppt
交换机CPU使用率高问题定位,目录,诊断工具display工具log工具报文冲击导致的CPU使用率高问题CPU使用率高问题信息采集,display cpu-usage slot x,display cpu-usage CPU Usage Stat.Cycle:60(Second)CPU Usage:40%Max:54%CPU Usage Stat.Time:2008-05-27 09:21:46 CPU utilization for five seconds:50%:one minute:49%:five minutes:47%Max CPU Usage Stat.Time:2008-05-26 09:30:07.TaskName CPU Runtime(CPU Tick High/Tick Low)Task Explanation BOX 0%0/35090 BOX Output _TIL 0%0/0 Infinite loop event task _EXC 0%0/0 Exception Agent Task bcmRX 2%0/3b69a bcmRX VIDL 50%0/af3cd700 DOPRA IDLE TICK 0%0/1414bb FOAM 0%0/0 FOAM FTS 25%0/416 FTS IPCQ 0%0/10105f IPCQIPC task for single queue SOCK 10%0/ecb2fc SOCKPacket schedule and process,空闲任务,任务描述,display cpu-defend statistics,display cpu-defend statistics all Statistics on slot 0:-Packet Type Pass(Bytes)Drop(Bytes)Pass(Packets)Drop(Packets)-arp-miss 0 0 0 0 arp-reply 384 0 6 0 arp-request 346825664 83619584 5419151 1306556 dhcp-client 0 0 0 0 dhcp-server 1427 0 4 0 igmp 2240 0 35 0 nap 0 0 0 0 nd 1424 0 16 0 snmp 0 0 0 0 tcp 0 0 0 0 telnet 0 0 0 0 ttl-expired 0 0 0 0 unknown-multicast 0 0 0 0-,对于报文冲击导致CPU高的情形,可进一步通过cpu-defend统计查询功能确认具体的协议类型。协议上送过多判断标准:该协议对应的Drop列有大量计数,且相对于Pass计数占比较高,例如上表中的arp-request类型。,display logbuffer,display logbuffer Logging buffer configuration and contents:enabled Allowed max buffer size:1024 Actual buffer size:512 Channel number:4,Channel name:logbuffer Dropped messages:0 Overwritten messages:0 Current messages:395 Feb 28 2012 16:37:40 Quidway%01SNMP/4/DECODE_ERR(l):Failed to login through SNMP,because of the decoded PDU error.(Ip=10.71.109.69,Times=4)Feb 28 2012 16:35:36 Quidway%01VOSCPU/4/CPU_USAGE_HIGH(l)126:Slot=5;The CPU is overloaded,and the tasks with top three CPU occupancy are FTS(40%),SNPG(30%),bcmRX(5%).(CpuUsage=99%,Threshold=80%),CPU使用率高往往还伴有告警、日志出现,可以通过查看日志缓冲区的历史记录,搜索CPU_USAGE_HIGH日志,以便确认CPU占用率TOP 3的任务。,目录,诊断工具报文冲击导致的CPU使用率高问题定位思路故障举例第一步:检查CPU占用率TOP任务第二步:检查上送过多的协议类型第三步:按协议类型分别处理CPU使用率高问题信息采集,定位思路,CPU使用率检查,确认TOP任务,确认报文类型,协议分类处理,其它情形信息采集,最常见协议冲击CPU致使用率高主要表现在bcmRX、FTS、SOCK等任务上。bcmRX是设备硬件中断触发的的收包任务,它会将收取到的报文立刻转交软件层面的FTS任务进行分发处理。对于属于三层协议处理的报文,往往还伴随有SOCK任务占用率高的情况出现。,故障举例,故障描述:交换机产生CPU_USAGE_HIGH告警:,备注:如果网管需要主动监测CPU使用率,可通过OID:获取。,Feb 28 2012 16:35:36 Quidway%01VOSCPU/4/CPU_USAGE_HIGH(l)126:Slot=5;The CPU is overloaded,and the tasks with top three CPU occupancy are FTS(27%),VPS(15%),bcmRX(5%).(CpuUsage=99%,Threshold=80%),第一步:检查CPU占用率及TOP任务,display cpu-usage slot x CPU Usage Stat.Cycle:60(Second)CPU Usage:85%Max:99%CPU Usage Stat.Time:2001-04-25 16:15:00 CPU utilization for five seconds:90%:one minute:85%:five minutes:86%Max CPU Usage Stat.Time:2001-04-24 17:17:07.TaskName CPU Runtime(CPU Tick High/Tick Low)Task Explanation BOX 0%0/dad772 BOX Output _TIL 0%0/0 Infinite loop event task _EXC 0%0/0 Exception Agent Task VIDL 15%8/b51c8f1b DOPRA IDLE TICK 0%0/91e2d7f CLKI 0%0/0 CLKI DEV 0%0/12202d9 DEV Device bcmRX 5%0/cb817af bcmRX CHAL 0%0/0 CHAL FTS 23%0/5a876 FTS MOD 0%0/0 MOD Module Management,通过故障现象中的告警信息,可以确认CPU占用率TOP任务中包含有bcmRX、FTS报文收取任务,基本可以确认属于协议收报过多导致CPU占用率上升。可以通过CPU使用率查询功能进一步核实TOP任务中是否包含有收包任务;可以通过slot指明查询的槽位号。,第二步:确认报文类型,通过cpu-defend统计查询功能,确认哪类协议存在冲击情形,可以通过各类协议的Drop列计数进行确认。如果某类协议Drop计数非常大,且Drop列计数相对于Pass列计数占比较高(例如达到20%以上),则认为属于此类协议存在冲击CPU情况。例如上表中的arp-request,后续按照第三步中的ARP协议对应处理方式进行处理。注意,查看统计时,需要关注协议冲击位于哪个槽位,即“Statistics on slot x”。,display cpu-defend statistics all Statistics on slot 0:-Packet Type Pass(Bytes)Drop(Bytes)Pass(Packets)Drop(Packets)-arp-miss 0 0 0 0 arp-reply 384 0 6 0 arp-request 346825664 83619584 5419151 1306556 dhcp-client 0 0 0 0 dhcp-server 1427 0 4 0 dhcpv6-reply 0 0 0 0 dhcpv6-request 0 0 0 0 icmp 0 0 0 0 icmpv6 0 0 0 0 igmp 2240 0 35 0,第三步:按协议类型分别处理-1,ARP通过display interface检查哪些接口存在Broadcast数量异常,并在此接口配置广播流量抑制,限制单个接口广播速率(例如限制为50pps):#broadcast-suppression pps 50.#DHCP请确认本机是否需要开启DHCP,如果不需要请在全局undo dhcp enable;如果需要,建议在下行接口开启dhcp error-down功能(具体信息请参考用户手册):#dhcp snooping check dhcp-rate enabledhcp snooping check dhcp-rate trigger error-down#并建议通过基于dhcp报文的流量统计功能,来发现哪个接口发送了过多的DHCP报文。,第三步:按协议类型分别处理-2,TCP/ARP-MISS此种情况一般是由于网络中存在针对不存在的某些直连网段IP地址进行扫描导致的.当有数 据报文发送到这些不存在的IP地址时,会将数据上送CPU处理,以触发ARP学习过程,建议此时在每个vlanif接口下调整ARP学习延迟时间:#interface vlanif1000 arp-fake expire-time 30#TTL-EXPIRED如果不需要本机在tracert中显示,建议丢弃此类报文:#cpu-defend policy test deny packet-type ttl-expired#Cpu-defend-policy test globalCpu-defend-policy test#,第三步:按协议类型分别处理-3,Reserved-multicast 此类报文一般属路由协议报文,目的IP地址,如果设备不需要此类报文(或者启用OSPF路由但未起组播功能),可以直接丢弃处理(或者升级到最新版本):#cpu-defend policy test deny packet-type reserved-multicast#Cpu-defend-policy test globalCpu-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 globalCpu-defend-policy test#,第三步:按协议类型分别处理-5,OSPF请检查是否存在路由表项过大,或者OSPF PEER过多情形,并根据实际情况考虑对路由进行优化,以降低路由表项数目或OSPF PEER数目。SNMP检查是否存在频繁的网管操作,例如获取接口流量,建议适当降低网管获取交换机信息的频率。,如果不属于上述常见协议类型,或者其它情况导致的CPU高情形,建议立刻搜集设备当前诊断信息、日志信息、本次定位过程的操作记录等,并返回华为服务处理。,目录,诊断工具报文冲击导致的CPU使用率高问题CPU使用率高问题信息采集,信息搜集,搜集cfcard中的logfile目录下的日志信息,针对没有cfcard的盒式设备,请通过如下命令搜集:display logbufferdisplay trapbuffer搜集设备诊断信息,命令为:display diagnostic-information 搜集cpu-defend统计信息(10分钟内多搜集几次)display cpu-defend statistics all,信息搜集,搜集TOP任务的监控信息:1.通过_hidecmd或diagnose进入诊断视图;2.通过display cpu-usage检查cpu占用较高任务,例如EOAM较高:Quidway-hidecmd display cpu-usage slot x-可指定槽号检查CPU Usage Stat.Cycle:10(Second)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 ExplanationBOX 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 0 x6ec5230 1 8 sleep 36830_TIL 0 x6ebaf90 2 250 eventblock 0_EXC 0 x6eb0cf0 3 135 eventblock 0VIDL 0 x6ea6a50 4 1 preemptready 79669745TICK 0 x6e9c7b0 5 205 preemptready 476396STND 0 x6daa8b0 6 80 eventblock 18097FTPS 0 x6dbc240 7 100 sleep 230536DEV 0 x6e7ffd0 8 140 eventblock 14818TCTL 0 x6c6a460 77 100 eventblock 45NAP 0 x6c601c0 78 100 eventblock 45EOAM 0 x6c55f20 79 100 eventblock 29468818TRAF 0 x6c4bc80 80 100 eventblock 25659SLAG 0 x6c419e0 81 100 eventblock 56,信息搜集,4.根据taskid设置监控阀值。阀值的设置可参考相应任务的现有占用率,如上面的EOAM模块CPU利用率为24,那么我们设置监控比这个值低一点,例如设置成20,具体命令为:set task-monitor-record threshold threshold taskid taskidQuidway-hidecmdset task-monitor-record threshold 20 taskid 79 slot x 可指定槽号Task Monitor has been set on slot 5,TaskId is 79,Threshold is 55.查看任务监控记录,具体命令为:display task-monitor-recordQuidway-hidecmddisplay 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-hidecmdset task-monitor-record threshold 1 taskid 0 slot x 可指定槽号Task Monitor has been closed on slot 5,7.如果是接口板CPU占用率高,需要按照上述16步骤搜集相应接口板槽位的任务监控信息(相应的命令行中指定slot即可)。,附录,本附件包含有各类交换机任务的详细描述,