取消
显示结果 
搜索替代 
您的意思是: 
cancel
10479
查看次数
20
有帮助
6
评论
lelwu
Cisco Employee
Cisco Employee
45交换机由于K5ForerunnerPacketMa和Adj SameIf Fail引起的highCPU 案例
一, 首先,在发现45交换机发生high CPU的时候我们一般抓取以下几条命令来先对问题进行定位:
show process cpu sorted | ex 0.00show platform health

  • show platform cpu packet statistics
  • debug platform packet all receive buffer
  • show platform cpu packet buffered

二,案例症状以及分析过程:
1, 在HIGH CPU是由于中断引起的排错过程中,我们要去找到时什么样的流量被送到CPU去处理。 但是如果我们查看流量并不能判断是属于哪一种固定类型的流量的时候,排错就会变得比较困难。
如果High CPU是由于K5ForerunnerPacketMa & Adj SameIf Fail 而引起的,这种情况下很可能我们并不能准确的通过查看送去CPU的包来判断是哪一种类型的流量被送去CPU。(如果入向的流量是从许多三层接口进入的……)
2, 从下面的命令中我们发现K5ForerunnerPacketMa 占用了许多的CPU。 Forerunner是在引擎上的一个ASIC部件,用来处理送向或者来自CPU的流量。我们经常在中断(流量送去CPU)引起的high cpu情况下发现这个进程和另外一个叫做K5CpuMan 的进程一起占用较高的CPU资源。

  • show platform health


Cisco4500#show platform health

%CPU %CPU RunTimeMax Priority Average %CPU Total

Target Actual Target Actual Fg Bg 5Sec Min Hour CPU

:

K5CpuMan Review
30.00 57.89
30 12 100 500 81 98 70 6499:39

K5ForerunnerPacketMa
2.00 27.83
4 0 100 500 34 43 30 2583:01

【我们发现在show platform health中这两个进程的实际CPU占用率大大超过了目标最大的CPU利用率】


3, 在上面的情况下,当我们不能确定是哪一种流量从去了CPU,我们需要查看下面的命令来查看CPU中一些Q (每个Q对应了一种需要CPU处理的流量的情况)

Cisco4500#sh platform cpu packet statistics

Packets Received by Packet Queue

Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

Host Learning 656886 0 0 0 0

L2 Control 94211898 85 86 77 66

Input ACL log, unreach 199 0 0 0 0

Ip Option 3182 0 0 0 0

Ttl Expired 13345736 12 3 1 0

Output ACL log, unreach 547932 0 0 0 0

Adj SameIf Fail 1757209937 3307 4532 3554 3719 <<<< 对比其他的Q发现这个Q增长最快

Bfd 4965 0 0 0 0

L2 router to CPU, 7 267385257 379 418 345 327

L3 Glean, 7 19093910 19 12 13 17

L3 Fwd, 7 38337667 91 102 92 82

L3 Receive, 7 10673861 12 5 7 2

Packets Dropped by Packet Queue

Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

L2 Control 2 0 0 0 0

Adj SameIf Fail 3902732 5 0 4 11 <<<< 我们也在这一个Q发现有丢包

L2 router to CPU, 7 165 0 0 0 0

L3 Fwd, 7 688 0 0 0 0


三, 解决方法:
在所有的三层接口和SVI口下配置:no ip redirects
Adj sameif fail 的包指的是那些被从入向接口又送出去的包(出入设备同接口)。我们知道,这种情况下,这样的包需要送去CPU来进行ICMP重定向。如果一个IP单播包被从它进入设备的接口送出去,这个包需要送去CPU处理,从而CPU要发送ICMP消息给源。 所以,通过禁用ICMP重定向可以减小CPU的利用率。
四, 一般情况下,我们建议在交换机三层接口下添加如下命令来防止一些CPU利用率过高的情况:
no ip redirects <===关闭ICMP重定向功能
no ip unreachable <===关闭发送不可达消息功能
no ip proxy-arp <===关闭代理ARP功能
在平常的case中,利用这三条命令可以规避许多high CPU情况发生,并且也不会对交换机设备转发流量产生影响。
评论
lelwu
Cisco Employee
Cisco Employee
:P沙发自己坐了~
Luke Huang
Cisco Employee
Cisco Employee
谢谢楼主分享
xupeng
Cisco Employee
Cisco Employee
谢谢楼主分享
siyzhang
Spotlight
Spotlight
非常棒的分享!
zhenlli
Cisco Employee
Cisco Employee
你好 我现在遇到了 和您这个一样的情况 同时我也建议客户使用了 no ip redirects 但是 high cpu的状况 仍然在 发生. 我看了他发给我的第二份数据,仍然和第一份一样,K5CpuMan Review 和 K5ForerunnerPacketMa的占用超过了target,同时Adj SameIf Fail收到了大量的包.
我有几个问题,你能告诉我一下吗?
1.有没有什么命令可以一次性确实能够所有的三层接口和SVI口都配置了 no ip redirects 这个命令?
2.如我所说,high cpu未被解决,请问我还应该从什么方面来troubleshooting 这个case呢..
lelwu
Cisco Employee
Cisco Employee
zhenlli 发表于 2015-8-3 14:40 back.gif
你好 我现在遇到了 和您这个一样的情况 同时我也建议客户使用了 no ip redirects 但是 high cpu的状况 仍然 ...

查下客户show run 里面是否所有的三层接口都配了no ip redirects;确定是否有别的counter也在涨,或者是否有别的进程或包punt到CPU。具体拍错方法可以参考如下链接:
http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/troubleshooting/cpu_util.html
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接