交换机CPU使用率高的原因
交换机CPU的功能
1.管理已配置的软件协议,例如:
– 生成树协议(STP)
– 路由协议,例如OSPF和EIGRP
– 热备路由协议(HSRP)
– 思科发现协议(CDP)
– 端口聚合协议(PAgP)
– VLAN中继协议(VTP)
– 动态中继协议(DTP)
2.将配置/动态条目编程到硬件ASIC,例如:
– 访问控制列表(ACL)
– CEF条目
3.内部管理各种组件,例如:
– 以太网供电(PoE)线卡
– 电源
– 风扇架
4.管理对交换机的访问,例如:
– Telnet
– 控制台
– 简单网络管理协议(SNMP)
5.通过软件路径转发数据包,例如:
– Internetwork Packet Exchange(IPX)路由的数据包,仅在软件路径中受支持
– 最大传输单元(MTU)分段
查看CPU使用率的常用命令
1.show processes cpu----查看CPU使用率
2.show process cpu sorted----显示进程CPU排序
3.show platform healt----查看哪些平台特定的进程使用CPU
show platform health | exc 0.00----过滤掉0%的
4.show processes cpu sorted | section iosd
IOSd: This is the Cisco IOS daemon that runs on the Linux kernel. It is run as a software process within the kernel.
常见的CPU高利用率问题
常见的CPU高利用率问题
1.由于使用不完整的ARP进行K5L3审核作业而导致的CPU高利用率。如
Switch# show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
K5L3FlcMan FwdEntry 2.00 27.51 15 14 100 500 25 26 20 4454:02
K5L3Unciast IFE Revi 2.00 31.28 15 10 100 500 26 26 21 4695:14
K5L3UnicastRpf IFE R 2.00 31.41 15 7 100 500 26 26 20 4659:17
2.RSPAN导致CPU使用率高
尽管RSPAN VLAN不会学习任何MAC地址,但是带有未知源MAC的数据包副本仍会发送到CPU并在CPU处丢弃。
Switch# show processes cpu sorted
CPU utilization for five seconds: 93%/7%; one minute: 94%; five minutes: 96%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
49 2095141161223088784 171 84.39% 84.85% 87.07% 0 Cat4k Mgmt LoPri
48 1195120 4781112 249 1.91% 1.86% 1.84% 0 Cat4k Mgmt HiPri
!--- Output suppressed
Switch# show platform cpu packet statistics all
!--- Output suppressed
Packets Dropped In Processing by CPU event
Event Total 5 sec avg 1 min avg 5 min avg 1 hour avg
----------------- -------------------- --------- --------- --------- ----------
Unknown 0 0 0 0 0
Sa Miss 2600617361 17399 15937 12797 12257
3.大量的生成树端口实例:超出了设备支持的生成树端口实例
show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter !--- Output suppressed. 25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager !--- Output suppressed. 41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU !--- Output suppressed. TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
4.ICMP重定向;在同一接口上路由数据包
在同一接口上路由数据包,或在同一L3接口上流量进出,可能会导致交换机进行ICMP重定向。如果交换机知道到最终目的地的下一跳设备与发送设备在同一子网中,则交换机会生成到源的ICMP重定向。重定向消息指示源将数据包直接发送到下一跳设备。该消息表明下一跳设备具有到目的地的更好的路由,比该交换机少一跳的路由。
如下图,PC A与Web服务器通信。PC A的默认网关指向VLAN 100接口IP地址。但是,使Catalyst 4500到达目的地的下一跳路由器与PC A在同一子网中。在这种情况下,最佳路径是直接发送到“路由器”。Catalyst 4500将ICMP重定向消息发送到PCA。该消息指示PC A通过路由器(而不是通过Catalyst 4500)发送发往Web服务器的数据包。但是,在大多数情况下,终端设备不响应ICMP重定向。缺少响应会导致Catalyst 4500在生成这些ICMP重定向时花费大量CPU周期,以实现Catalyst通过与入口数据包相同的接口转发的所有数据包。
缺省情况下,ICMP重定向功能处于启用状态。为了禁用它,请使用no ip icmp redirects命令。在相关的SVI或L3接口下发出命令。
注意: 由于ip icmp redirects是默认命令,因此在show running-configuration命令输出中不可见。
使用show process cpu命令检查Cisco IOS进程。
发出show process cpu命令。您可以看到Cat4k Mgmt LoPri和IP Input这两个主要进程主要使用CPU。仅使用此信息,您就知道IP数据包的处理占用了CPU的很大一部分。
Switch#show processes cpu
CPU utilization for five seconds: 38%/1%; one minute: 32%; five minutes: 32%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 63 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 60 50074 1 0.00% 0.00% 0.00% 0 Load Meter
3 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events !--- Output suppressed. 27 524 250268 2 0.00% 0.00% 0.00% 0 TTY Background
28 816 254843 3 0.00% 0.00% 0.00% 0 Per-Second Jobs
29 101100 5053 20007 0.00% 0.01% 0.00% 0 Per-minute Jobs
30 26057260 26720902 975 5.81% 6.78% 5.76% 0 Cat4k Mgmt HiPri
31 19482908 29413060 662 19.64% 18.20% 20.48% 0 Cat4k Mgmt LoPri !--- Output suppressed. 35 60 902 0 0.00% 0.00% 0.00% 0 DHCP Snooping
36 504625304 645491491 781 72.40% 72.63% 73.82% 0 IP Input
5.主机学习
如果MAC地址表中尚未存在该MAC地址,则Catalyst 4500将学习各种主机的MAC地址。交换引擎将具有新MAC地址的数据包副本转发给CPU。
所有VLAN接口(第3层)都使用机箱基础硬件地址作为其MAC地址。结果,MAC地址表中没有条目,并且发往这些VLAN接口的数据包也不会发送到CPU进行处理。
如果要学习的交换机的新MAC地址过多,则可能导致CPU使用率过高。
show platform cpu packet statistics
Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 1328 1808 1393 1309
show platform cpu packet statistics显示CPU看到许多新的MAC地址。这种情况通常是网络拓扑不稳定的结果。例如,如果生成树拓扑发生更改,则交换机将生成拓扑更改通知(TCN)。在PVST +模式下,TCN的发出将老化时间减少到15秒。如果在该时间段内未学习回地址,则会刷新MAC地址条目。对于快速STP(RSTP)(IEEE 802.1w)或MST(IEEE 802.1s),如果TCN来自另一台交换机,则这些条目将立即过期。此老化会导致重新学习MAC地址。如果拓扑更改很少,这不是主要问题。但是,由于链路抖动,交换机故障或未为PortFast启用的主机端口,拓扑更改可能会过多。大量的MAC表刷新和随后的重新学习可能会导致。根本原因识别的下一步是对网络进行故障排除。交换机将按预期工作,并将数据包发送到CPU以进行主机地址学习。识别并修复导致TCN过多的故障设备。
6.安全ACL的硬件资源不足(TCAM)
Cisco TCAM对已配置的ACL进行编程。TCAM允许在硬件转发路径中应用ACL。无论转发路径中是否包含ACL,都不会影响交换机的性能。无论ACL的大小如何,性能都是恒定的,因为ACL查找的性能是线速的。但是,TCAM是有限的资源。因此,如果配置了过多的ACL条目,则会超出TCAM容量。
当TCAM溢出发生时,将show logging显示此警告消息:
%C4K_HWACLMAN-4-ACLHWPROGERRREASON: (Suppressed 1times) Input(null, 12/Normal) Security: 140 - insufficient hardware TCAM masks.
%C4K_HWACLMAN-4-ACLHWPROGERR: (Suppressed 4 times) Input Security: 140 - hardware TCAM limit, some packet processing will be software switched.
show platform health
25 1046448 110711 9452 0.00% 0.03% 0.00% 0 Per-minute Jobs
26 175803612 339500656 517 4.12% 4.31% 4.48% 0 Cat4k Mgmt HiPri
27 835809548 339138782 2464 86.81% 89.20% 89.76% 0 Cat4k Mgmt LoPri
28 28668 2058810 13 0.00% 0.00% 0.00% 0 Galios Reschedul
show platform cpu packet statistics !--- Output suppressed. Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 57902635 22 16 12 3
Host Learning 464678 0 0 0 0
ACL log, unreach 51443268 9 4 5 5
ACL sw processing 842889240 1453 1532 1267 1179 Packets Dropped by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
L2 Fwd Low 3270 0 0 0 0
ACL sw processing 12636 0 0 0 0
7.2层转发环路
第2层转发环路可能是由于生成树协议(STP)的实施不当以及可能影响STP的各种问题引起的。
使用show process cpu命令,则可以看到两个主要进程Cat4k Mgmt LoPri和Spanning Tree主要使用CPU。
show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter !--- Output suppressed. 25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager !--- Output suppressed. 41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU !--- Output suppressed. TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
show platform cpu packet statistics !--- Output suppressed. Total packet queues 16
Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 202760 196 173 128 28
Control 388623 2121 1740 598 16 Packets Dropped by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 17918 0 19 24 3
交换机CPU使用率高的原因的更多相关文章
- 服务器CPU使用率高的原因分析与解决办法
我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...
- MySQL CPU 使用率高的原因和解决方法
用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...
- 找出程序cpu使用率高的原因
确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |g ...
- 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题
MySQL CPU 使用率高的原因和解决方法_产品性能_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/51587.html ...
- (原创)性能测试中,Oracle服务器定位CPU使用率高的瓶颈(SQL)
本篇博客记录一次性能测试过程中,定位对CPU使用率高的瓶颈问题,主要定位SQL为准 一.用SQL命令定位1.首先用TOP命令监控系统资源,如果是AIX系统,就用topas,进入TOP命令的滚动刷新数据 ...
- 排查MongoDB CPU使用率高的问题
1.公司业务调整,把一部分数据由Redis转至MongoDB,业务在测试环境正常,生产环境上线后发现压力一上来MongoDB的服务直接把CPU占满了,和开发的同学分析了一下也参考了一下百度上类似的问题 ...
- Java进程CPU使用率高排查
Java进程CPU使用率高排查 生产java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下.1.jps 获取Java进程的PID.2.jstack pid >> ...
- 寻找CPU使用率高的进程方法
寻找CPU使用率高的进程方法 发布时间: 2017-07-13 浏览次数: 1362 下载次数: 0 问题描述 节点报CPU使用率高,甚至出现"ALM-12016 CPU使用率超过阈值 ...
- Cisco WS-C4503-E CPU使用率高问题排查
现状描述: 办公网环境下由2台VSS模式下WS-C4503-E 作为核心交换机,下接若干台WS-C2960X-48LPS-L作为接入.行政同事在进行工位改造的时候为方便将原工位网线下联若干台hub. ...
随机推荐
- Hive日期函数总结(转学习使用)
一.时间戳函数 1.获取当前时区的UNIX时间戳:select unix_timestamp(); 2.将指定时间转为UNIX时间戳: select unix_timestamp('2012-03-0 ...
- ATM_tests
ATM取款机练习程序 一.程序分析 自顶向下.逐步细化 按照程序执行的流程,将程序分解为若干个功能相对独立的函数(方法),每个函数(方法)负责某一功能,然后根据程序执行的流程,将函数(方法)组装(调用 ...
- TR2021_0000偶发数据库连接异常问题排查
[问题描述] 数据库连接异常是很难排查的一类问题.因为它牵涉到应用端,网络层和服务器端.任何一个组件异常,都会导致数据库连接失败.开发遇到数据库连接不上的问题,都会第一时间找DBA来协助查看,DBA除 ...
- redis 6.0新特性
防止忘记,记录一下 1.多线程IO Redis 6引入多线程IO,但多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程.之所以这么设计是不想因为多线程而变得复杂,需要去控制 key. ...
- 【Azure Redis 缓存】Azure Redis功能性讨论
关于使用Azure Redis服务在以下九大方面的功能性的解说: 高可用 备份可靠性 配置自动化 部署多样性 快速回档功能 数据扩容 SLA稳定性 数据安全性 监控系统 一:高可用 Azure Cac ...
- 面试官:你真的了解Redis分布式锁吗?
什么是分布式锁 说到Redis,我们第一想到的功能就是可以缓存数据,除此之外,Redis因为单进程.性能高的特点,它还经常被用于做分布式锁. 锁我们都知道,在程序中的作用就是同步工具,保证共享资源在同 ...
- 剑指offer 面试题0:高质的代码:即考虑边界条件、特殊输入和错误处理
Q:把一个字符串转换为整数. A1:一个普通但漏洞百出的解法. int StrToInt(char* str) { int number = 0; while (*str != 0) { number ...
- CSS 奇思妙想边框动画
今天逛博客网站 -- shoptalkshow,看到这样一个界面,非常有意思: 觉得它的风格很独特,尤其是其中一些边框. 嘿嘿,所以来一篇边框特辑,看看运用 CSS,可以在边框上整些什么花样. bor ...
- 如何查看U盘的VID和PID
1.将USB插入电脑 2.右键单击[此电脑],选择[管理] 3.在弹出的对话框中选择[设备管理器],选择[USB大容量存储设备] 4.右键单击[USB大容量存储设备],选择[属性],在弹出的对话框中选 ...
- layui表格前端格式化时间戳字段
layui.use(['util','table'], function(){ var table = layui.table; var util = layui.util; //... ...