为什么CPU非法占用土地非

CPU 利用率异常的分析思路和方法
在生产运行当中,经常会遇到CPU利用率异常或者不符合预期的情况,下面这些知识可以帮助你。
(来自社区会员交流活动,社区专家杨建旭总结梳理成文)
基本概念类问题
(一) CPU的占用是怎么产生的?为什么不同OS下的CPU利用率不同?
操作系统是用来调度任务(进程)和管理外围设备的系统,操作系统采用自己的进程调度策略将进程调度到CPU上运行,占用了CPU时间片,由此产生了CPU的占用。
为什么不同OS下的CPU利用率不同呢?有以下几方面的原因:
1. 不同的操作系统管理外围设备的方法、进程调度的算法、内存管理的算法等等有差异,因此同一个应用在不同的OS下的CPU消耗可能不一样。
2. 同一个应用安装在不同的设备上(包括硬件+OS+系统软件),并不能保证参数都是一样的。即使是同一个版本的OS,由于应用和OS的参数配置太多,可能某个参数配的不一样,相差很大的CPU利用率都是可能的。举几个例子:
一个采用文件系统,另一个采用裸设备
一个设置了CPU折叠,一个没设置
一个写磁盘是按照4K写入,另一个按照64K写入,那么diskbusy的百分比相差很大,CPU的繁忙程度也略有不同
3. 不同OS上,CPU数读工具的统计方法可能不一样,即使是同一个OS,不同的CPU读数工具的统计方法也可能不一样。
有人提到,“Linux on Power的处理器利用率比AIX的处理器利用率相比少得多”,这个现象并不奇怪。即使都是AIX,同一个应用在AIX61上和AIX71上,CPU利用率也不同,我做过实验,AIX71相比AIX61做了一定的优化。
(二) 为什么多核CPU的利用率分布不均匀
问题:在AIX系统,利用topas查看时,发现只有一个CPU的利用率很高,其他的core利用率几乎为零,怎么可以调整参数,使得其他的core的利用率增大?在Linux下的问题同样的疑问。
从应用角度,很可能应用是个单进程,不能分到多个CPU上运行。如果已经是个多进程应用,那就可能并发数设置为1了,需调大并发数后才能分配到多个核运行。
从操作系统层面,系统会把进程调度到上一次使用的CPU,以避免进程的上下文切换。一个CPU干的好好的,当然不会调到其他CPU,不然上下文切换代价大。因此,如果压力不是很大的时候,当然是只有一个core的利用率较大,而其他core是闲置状态。
(三) CPU利用率的正常使用范围是多少?
一般来说,生产运行环境中CPU 70%会报警。有些谨慎、保守的单位,CPU超过40%就着手扩容了。
但并不是说CPU一超过70%就一定是异常,对于夜间的批处理业务,可能更多的是期望它尽多占用CPU、尽快处理完成,以免影响第二天的开门。
(四) CPU利用率当中的Sys%高是什么原因?
如果系统态占比比较大,一般有以下几类原因:
1. 为了追求效率,减少用户态到系统态的转换,把用户态的function改到系统态,例如:一些驱动程序,以显卡驱动最为常见
2. 系统有IO问题
3. 应用设计问题
例1:频繁调用sync函数做缓存到磁盘的数据同步,就会产生大量sys%,并且这个sys%中,大量的是kernel态的wait和sync。
例2:反复load/unload so文件。
例3:阻塞方式的网络收发
问题诊断思路
(一) CPU利用率上不去
CPU有两头怕
1)怕CPU占用率高
2)怕CPU占用率低
重点解释一下为什么怕CPU低。有时候,业务压力冲上来了,但都被挡在外面,或者堆在队列了,而此时看CPU利用率却很低,也就是有CPU但没有用上。
这种情况有好多原因,这里说几个原因:
1)并发线程数太少
并发数应该开多少呢? 假如你的应用线程是全力干活的线程,没有什么SLEEP、等IO之类的事情,也就是说,一个线程可以把一个物理CPU THREAD吃的满满的。那么你的最大并发线程,可以设为略小于服务器的逻辑CPU数量。也就是CPU CORE* SMT。如果你是虚拟化POWERVM环境,逻辑CPU=VPSMT,但虚拟化环境,需要额外注意,如果你要保持高性能,那么建议略小于ECSMT即可。
2)虚拟化平台的参数配置有问题
比如某个LPAR,EC=0.5,VP=5,那么很可能,压力来了之后,CPU利用率也上不去,报文严重堆积。因为可能系统环境中物理机的CPU占用率已经较高,各个LPAR之间借用CPU已经非常严重,大部分时间都花在hypervisor的调度上,以及CPU的cache命中失败去内存找数据取了。
关于这方面的原理,可以参看
3)其他各类参数限制导致应用能力被约束,尤其以数据库为甚
比如应用连接Oracle数据库服务器的JDBC连接数太少,数据库的process太少等等,导致应用在等待数据库。如果单从数据库来讲,以Oracle为例,可以看看AWR的top等待事件。
比如logswitch等待时间长,可能需要调整redo日志组数和日志大小
比如索引等待时间长,可能需要调整为索引分区
比如rego日志sync等待时间长,可能需要调整存储的能力。
4)应用逻辑设计问题
逻辑设计复杂,流转过程长,导致不能很好的并发利用资源。
可以类比CPU流水原理,CPU设计为什么设置多级流水,而不是一级流水把一个指令执行完。
(二) CPU利用率居高不下
主机资源使用繁忙,到底是因应用需要做优化处理还是确实物理资源不足导致?
1. CPU资源不足,首先可以考虑优化。优化首先考虑技术层面优化
2. 如果技术优化无果,则进入业务优化。更改业务流程,业务处理方式。例如:
a) 实时检查,改为定期检查
b) 每秒钟检查一次,改为每分钟检查一次
c) 实时清算改为定时清算
3. 如果业务优化仍然无果,则需要加资源,甚至从总体上更改架构。毕竟任何CPU、任何服务器、任何系统都是有业务上限的。
CPU利用率居高不下的原因:
1. 绝大多数情况是应用写的烂
算法差,或者无意的应用调用,触发了内核函数占用CPU高。
这里所说的应用包括中间件、数据库(比如SQL写的差,没做变量绑定(硬解析),索引设置不合理,数据库物理设计不合理等等)。
2. 参数类 系统参数(比如缓存什么情况下往硬盘刷,设置不得当,刷的频率太快) 编译参数(各种优化选项,以及各种依赖关系) 数据库参数(比如可以共享游标去节省CPU消耗,但却没有做) 中间件参数(比如GC策略)
AIX 关键业务系统CPU使用率高居不下,但是未对业务系统造成影响,如何进一步具体分析?
如果在贵单位认定的标准线以内,比如,CPU%不超过70即认为可以接受,不处理也没关系。
1)有些应用可能已经优化到极致了。接下来考虑的是扩容、容量规划,必要时调整架构(分布式,大数据)。容量规划可以采用以下的步骤:
收集性能,、容量和事件数据(服务器统计数据,网络统计数据,存储统计数据,业务统计数据)
分析服务器性能和业务需求
性能趋势分析,判断未来需求
关联数据,对性能和容量进行深入分析
提供“what-if”分析,识别未知的瓶颈
考虑虚拟化技术、优化成本、 供应和需求
生成报表提供更好的决策支持
2)如果不考虑扩容,仅考虑优化
采用nmon、topas、tprof,curt等工具分析什么进程、线程、函数占用了CPU,或者CPU在等待什么事件,进行深入分解和分析
(三) 如何应对CPU使用率毛刺问题?
毛刺不可怕,OS的CPU调度也不一定那么完美
首先需要判断毛刺是1)周期性的,或者2)杂乱无章的,或者3)偶尔的突起。
1. 周期性的毛刺
列举几种可能的原因:
第一:发送到该服务器的业务量本身有周期性的增大。
第二:某个进程/任务周期性占用。如果是周期性监控进程占用CPU,问问监控系统的开发人员,咨询监控软件时候时间点发起监控、内部发起了什么操作或命令,这些操作是否可以优化。
第三:定期的锁导致业务量在锁时期积压,锁释放后冲高
2. 杂乱无章的毛刺
第一:发送到该服务器的吞吐量本身有是高低不一的。
第二:读取队列的算法有问题,读取不均匀
第三: OS调度问题
3. 偶发的毛刺
可以采用脚本或代码抓取当CPU出现毛刺时的调用栈(CoreDump、tprof、truss等)。
也很有可能是某应用程序、系统程序或操作系统的bug
(四) 偶尔异常
有没有好的方法监控异常占用CPU的进程?
这里采用的方法和“CPU偶发的毛刺”采用的方法一样,采用脚本或代码抓取当CPU出现毛刺时的进程和调用栈(nmon、ps、CoreDump、tprof、truss等方法)。
(一) CPU分析
vmstat, iostat, ps, sar, gprof/prof/tprof,time/timex, netpmon, locktrace,emstat,alstat,topas,trace, trcrpt,curt,splat,truss,procstack 等
(二) CPU优化
procmon,larstat,mpstat,cpupstat,nice/renice,schedo,bindprocessor,chdev,setpri等
可以参考社区“系统性能测试”专栏中的几篇文章(http://www.aixchina.net/Column/detail/id/9)
性能指标之资源指标-CPU-谁占用了CPU-进程级
性能指标之资源指标-CPU-谁占用了CPU-函数级-tProf
性能指标之资源指标-CPU-谁占用了CPU-函数级-curt
性能指标之资源指标-CPU-谁占用了CPU-函数级-truss
性能指标之资源指标-CPU-谁占用了CPU-函数级-CoreDump
(四) 收集CPU信息数据时需要注意一些什么?
需避免对业务运行造成影响。收集数据越全面的工具,消耗越多的资源(CPU、磁盘IO、存储空间)。最好在业务量低的时候收集,除非你的问题是在业务量高的时候才出现。
收集时间要短,如果1分钟的数据够用,就只搜集1分钟。像trace这样的收集工具是每个逻辑CPU都分别搜集,如果你的几十个CPU上跑的进程都差不多,可以少搜集一些CPU。
虚拟化相关
(一) PowerVM环境下的CPU监控和分析与物理机环境有哪些差异?
首先:利用率的概念不同。
虚拟化环境下CPU利用率相对于EC(标称计算能力)来说,可以超过100%。
相对于VP(虚拟CPU)来说,永远是&=100%。
相对于运行时获得的物理CPU来说,永远是&=100%。
CPU利用率的统计方法:
第二:虚拟化环境关注的参数更多,这些参数会对性能产生巨大的影响
虚拟化环境需同时关注以下参数:
标称计算能力(Entitled Capacity,简称EC)
虚拟CPU(Virtual CPU,简称VP)
逻辑CPU个数(Logical CPU)
有上限/无上限(Capped/Uncapped)
型号/时钟频率
处理器折叠(Processor Folding)
运行时物理CPU(Physical CPU)
可以参考:
(二) 开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异
1、用的是什么虚拟服务器?VMware还是PowerVM的?还是其他的平台?
2、假如是VMware,用的是ESX/vSphere还是VMware Workstation,二者架构不同,性能不同,PC上的VMware Workstation不是裸金属模式,性能不好。
3、虚拟机上看到的核数,可能不是真正的核数。比如说VMware上,看到的2个core,其实是x86 CPU的一个core中的一个超线程。
如果这个x86 CPU一个core是两个线程,那么虚拟机中的两个core只相当于物理的一个core。当然,这是能够完全抢占的情况下。如果没有完全抢占,那就更小了。
如果是PowerVM的虚拟机,操作系统看到的核数是VP(虚拟CPU),至于这个LPAR运行时候,能得到多少物理CPU以及这些物理CPU的亲和性,可能差异很大。
PowerVM上CPU的概念可以参考:
性能指标之资源指标 CPU配置参数对性能的影响
(三) 虚拟化下CPU核数超分配有没有最佳实践
问题:在虚拟化的环境下,一般可以超分配CPU核数。一般会有一个临界值。过了这个值CPU性能就大幅下滑。我们如何找这个值,有没有什么最佳实践?
所谓的“最佳实践”其实是厂商给出通用值,具体到你的单位头上,并不一定是最佳的。世界上没有所谓的通用的最佳。就好比,两地三中心、异地双活之类的设计方案,没有什么最佳实践,每个企业都有根据自己的特点来设计。
回到你的问题,如果你的系统追求最短的响应时间(核心交易系统),VP和EC的比值越小越好。如果,追求最大瞬时CPU获得,设置大一些更好,最大可以是10,适用于平时没有什么业务量的非核心系统。
(四) EC高低似乎对业务响应时间没什么影响,为什么?
这个是需要运气的。
是否做上下文切换,取决于进程是不是每次被调用到同一个VP上,VP是不是每次被调用到同一个物理CPU上。
如果你的资源池,资源比较充足,那么hypervisor按照亲和性调度,你的VP每次得到的物理CPU是一样的,所以响应时间不受影响
反之,资源紧张,多个LPAR争抢,亲和性大打折扣,响应时间就起伏很大。
亲和性的数值,可以通过下面方式查询
Nmon的BBBP sheet
命令行Mpstat –d
"那么如果要看运气的话,物理资源多少才算闲置,总利用率多少需要开始关注CPU亲和度了,需要开始着手处理此类问题了"
首先要理解亲和度的概念,是CPU是否能从cache1、2、3里面读到数据。举个例子,有1000个进程跑在一个CPU上,但都是不怎么干活的进程,一会儿进程A上来占用,一会进程B上来占用,但总体CPU利用率并不高,但每个进程上来后都要有自己的进程上下文。可能此时cache1、2、3根本缓存不了这么多上下文。结果就是大量的上下文切换。
因此不会有一个绝对的指标,说物理资源多少才开始关注CPU亲和度。
针对 “物理机的整体CPU利用率究竟达到多少时,需要考虑扩大LPAR的EC”
是否扩大LPAR的EC,主要考虑的是你的业务需求是否能够得到满足(例如,响应时间是否满足要求,吞吐量是否跟得上),而不是主要考虑物理机的整体CPU利用率。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点大家在使用电脑的过程中,都出现过电脑CPU使用率高导致电脑非常卡,运行的一些程序卡住不动了甚至似无响应。那么电脑CPU占用100%使用率怎么解决呢?
首先在解决问题之前,我们先要弄明白是什么原因导致电脑CPU占用过高?找到症结才能更好的解决问题。一般情况原因有一下几点:
电脑运行了大型的程序,例如大型的软件等等,这种情况通常都是正常的,这类程序需要较多的CPU资源,网友将大型的程序退出一段时间,CPU使用率基本就恢复正常了。
2.电脑中毒。病毒会在后台大量恶意程序运行,资源都被病毒占用了,当然电脑会觉得很卡。这种情况就需要把病毒清除干净,木马清理后CPU使用率就然就降低了。
3.电脑兼容性不够,有时网友哦看视频时会突然卡一段时间,然后电脑就崩溃了,这里有可能是电脑显卡驱动兼容性存在问题,也可能是视频文件过大,电脑支持不了,从而出现CPU使用率过高。
4.系统不是纯净版本,导致安装了很多软件插件,建议使用纯净版系统。
5.一些杀毒软件会对网页、进程、插件、邮件监控,可能会造成扫描一些程序的时候造成死循环。
那针对这些问题,我们又高如何快速有效解决呢?
1.在运行大型程序之前,查看电脑配饰是否满足运行改程序的最低配置,如果确实无法支撑,就建议大家将电脑硬件进行升级了。
2.大家可以使用占用资源小的一些安全工具,不会使电脑CPU使用率过高。
3.定期更新电脑各种驱动,保持电脑驱动处于最新状态,减少CPU出现100%的概率。
4.若是硬件导致CPU使用率高, 如果你的电脑还是单核cpu,如老配置系列的cpu,这种老爷机。打开一个网页CPU都到100%了。
这种问题只有升级你的硬件才能解决了 ,接下来会介绍一些优化方法来降低CPU使用率。如果优化后还是无法解决你CPU使用率高的问题,建议还是升级硬件。或者更换电脑。
文章转载自网络,作者观点不代表本网站立场,如需处理请联系客服
网络工程师其它文章
很多人的电脑容易出现问题,特别是不怎么懂电脑的小伙伴问题是最常见的,在使用电脑的时候突然出现问题是,大家最烦恼的,为了解决问题我们常常可以试试这几个方法。1、快速查看电脑系统类型快捷键:window+pauseBreak,既可以看到,电脑是64位操作系统。2、恢复桌面图标
电脑F1到F12键,肯定是大家最常用的功能键,大家可能不一定全部都有用,但是你可能不知道他的作用有哪些,其中F指的是Function功能的意思,每一个电脑键盘标配都是顶端都有F1~F12一排按键,我估计全部掌握的人还真不算多。今天我们一起来认识一下。F1:帮助键。当碰到一
生活中流传的各种手机危害导致人心惶惶,都不敢这样或者那样误操作,其实有的危害并不一定都是真实的,只要你多注意一下,避免误操作,基本上都是不会发生的。今天我们一起看看哪些危害是真实的哪些是假的。充电时不要玩手机?充电时如果玩手机,你会发现手机越来越烫,
很多人在问为什么自己的电脑安装win10系统这么卡,别人的电脑那么流畅,其实很多人的电脑可能是配置跟不上或者硬件出问题,今天我们一起聊聊,哪些配置比较适合安装哪个系统。XP、Windows7和Windows10都是微软推出的电脑桌面操作系统,其中XP已经停止更新维护多年,win7
电脑无论出现什么问题,大家最常见的是重装系统,除非硬件出现问题正常情况重装系统就可以解决大部分人的问题,但是有的人说电脑需要经常重装系统这个问题成为大家困扰的问题,今天分享一些大家不重装系统有什么坏处。第一系统原因,由于系统长时间使用,一方面是系统缓
电脑造成开机蓝屏的原因很多,比如硬件故障,软件故障。大家解决方法可能很多人都是重装系统,其实想解决问题是非常简单的,赶紧尝试就可以解决问题。硬件故障或者软件故障一、是否能进入安全模式安全模式1.如果开机蓝屏,可以在屏幕出来时,选择[安全模式]并按[Enter]进
很多人的电脑经常出现问题,对大家比较感兴趣的小伙伴是不是想尝试自己维修以下电脑,但是如果你不注意可能会导致出现让你后悔莫及的事情,为了避免这个问题出现,你可以需要注意这几个方面。电脑这方面的,软件,硬件方面都有,前天,一个朋友(之前小编给做过一点时间
电脑每次进入系统之前都要按F1才可以进入系统,遇到这个问题是不是非常烦恼啊,今天教大家可以自己设置把这个需要按F1问题解决了,赶紧试试看。就像刚才咱们说的,每次进入系统都要按住F1才可以。电脑每次启动后,会发现时间不准确,就算设置了时间,下次开机后还是会恢
很多人的电脑是不是内存越来越不够用,大家是不是在郁闷电脑应该怎么加内存条? 加内存条有什么用?内存是保证电脑运行的重要组件,为了提高电脑运行速度,我们都需要提高内存,我们应该怎么正确配置内存。加内存前的注意事项第一点,我们在安装新的内存条时不要为追求高性
手机的音量键除了调节声音的大小之外还有很多隐藏的强大功能,相信可能大家就只知道几种,今天分享一些我们常见的功能,赶紧试试看吧。1,快速启动相机很多时候我们想抓拍一些画面的时候,当打开手机相机的时候,那些精彩瞬间就已经错过了。但是如果小编说轻轻两下音量键
交换机 B 的配置如下:PC1-PC4 的网络设置为:验证:1、配置 ACL 之前,PC1 和 PC2 都可以 telnet 交换机 A。2、配置 ACL 后,PC1 可以 telnet 交换机 A,而 PC2 不可以 telnet 交换机 A。 若实验结果和理论相符,则本实验完成。六、 实验步骤第一步:交换机全部恢复出厂
网络工程单选题31在网络协议的三要素中,定义控制信息格式的是A.语法B.时序C.层次D.端口参考答案:A32在OSI参考模型中,提供路由选择功能的层次是A.物理层B.会话层C.网络层D.表示层参考答案:C33关于数据报交换与虚电路交换的描述中,正确的是A.数据报交换需要在源节点与
电脑的硬盘在使用的时候过程,硬盘经常出现故障,故障的几率是比较高的,通常会表现为硬盘不启动硬盘出现坏道、硬盘异响、硬盘盘片不转这四大故障。硬盘不启动故障维修在使用电脑的过程中我们经常会遇到硬盘不启动的故障。硬盘不能启动大都是由于硬盘上的主引导记录、引
电脑就会出现各种各样的崩溃,为了解决这些电脑问题,今天小编给大家带来了其中的一种,叫做“0X????????指令引用的0x内存,该内存不能written”或是“该内存不能为read”。当我们看到这句话点击确定后,打开的应用程序就会自动关闭。有些人会说,这就是因为系统不
手机电池越来越不耐用的问题是大家最常见的问题,为了解决电池问题,很多人都只能换电池,为了解决手机电池问题,今天分享一下大家需要注意的几个方面发方法,避免问题经常出现。切勿冰冻电池将电池放入冰箱可以延长使用寿命是一个常见的“神话”。有很多人可能记得,将
电脑因为不注意可能会导致出现各种故障问题,为了解决问题很多人研究了各种解决方法,其实电脑可以使用命令解决很多问题,如果你知道使用问题就解决不了,赶紧一起学习一下怎么解决问题。电脑按下win+R进入运行命令:wiaacmgr–扫描仪和照相机向导write–---写字板Ws
电脑使用久后就会比较卡了,大部分人都是选择重新买个新的电脑回来就可以了。但对于要求不高的用户来说其实对老电脑进行升级就能满足相应的运用,那么,哪些配件要留下,哪些要更换,如果不是特别懂行,肯定帮你省下不少钱。下面就看下老电脑升级需要更换哪些配件吧。一
大家是不是有一台长时间没办法使用的电脑,突然需要使用的时候,电脑竟然没办法开机了,很多人以为是电脑系统坏了,其实问题解决起来非常简单,不信赶紧试试看。首先电脑主机一年没有使用开不了机我分析给你几种常见无法开机故障,你可以用排除法解决第一,内存故障:拆下
电脑硬盘丢失数据造成的不可挽回损失不可估量,但是大部分硬盘坏了也是可以自行修复的,下面咱们来看看坏掉的硬盘哪些是可以修复的吧。硬盘坏了,通常可以修复的“硬盘”有几种情况:1、引导出错,不能正常启动的。这种情况不一定是坏了,通常清除MBR,再重新分区就有80
大家有没有经常开机为什么别人电脑开机的时候可以选择系统,而自己的电脑开机的时候默认就一个系统,今天教大家自己尝试轻轻松松安装双系统。我们来看如何给自己的电脑装一个双系统。其实越复杂的事情往往有时候越容易办到,双系统的安装就是这样。他和我们平时的安装系
网络工程师帖子很冷清,卤煮很失落!求安慰
手机签到经验翻倍!快来扫一扫!
CPU和内存占用都很低,但是非常卡,是怎么回事。
2155浏览 / 18回复
昨天解压高压版的鬼泣4,安装解压的时候非常卡,切换个窗口要等20多秒,查看了下cpu占用3%,还剩1g空闲,是系统问题?用的x4 640和2g内存,感觉应该不是配置太低。
显卡一定不是铭瑄。
解压的时候在写入文件呢
操作额外的硬盘就不会这样了
对 楼主 playforhappy 说:=========================应该是硬盘的问题吧……
解压嘛。。硬盘才是瓶颈。。
把系统和常用安在一个硬盘上,游戏和电影安在另一个硬盘上
我有时候也会莫名的卡
不知何因啊!
应该是硬盘的问题
别开节能软件,就用凉又静就行了
硬盘是关键
对 楼主 playforhappy 说:=========================解压缩时硬盘吃满了~
对 第3楼 换马甲你不认识我 说:=========================谢谢马版
对 第4楼 class18801 说:=========================这样感觉挺郁闷,到后面解压只有9mb/s了。
对 第6楼 草泥马JS 说:=========================暂时还觉得容量够用,组raid0有点浪费,看来只能忍了
对 第9楼 恶意卖萌 说:=========================没开节能,因为不用交电费,压力不太大
对 第11楼 木精灵 说:=========================有种感觉,但是用p4时候也是这么卡的,悲剧的硬盘
对 第16楼 playforhappy 说:=========================这么多年硬盘的读取速度提升很小,所以卡经常的。另外不交电费就不重视节能这可要掉RP的!
正常,解压时本身就非常占用硬盘资源,一般此时硬盘会满载读盘,硬盘灯会长亮。
硬盘已经满载你还让他去读其他程序,当然就会会很卡。
现在电脑最大的瓶颈就是硬盘了,不能忍就换固态硬盘或组RAID 0吧,这样会好些。
用户名/注册邮箱/注册手机号
其他第三方号登录【维护无忧】3分钟看懂CPU占用率高原理
1 CPU和CPU占用率简介
交换机的核心--CPU
交换机采用分布式架构,主要包括转发平面和控制平面。其中转发平面用于实现二三层转发;而控制平面主要用于实现转发的控制。
如图1-1所示,交换机的控制平面采用通用嵌入式CPU实现,转发平面采用转发芯片实现:
转发芯片完成主要的二三层转发功能,如更新用于二层转发的MAC地址表以及用于IP转发的三层转发表。转发芯片的特点是能够实现大吞吐量的数据转发。
CPU主要维护软件表项(如路由表、ARP表等),并根据软件表项的转发信息来配置转发芯片的硬件三层转发表。同时,CPU本身也可以完成软件三层转发。CPU的特点是数据处理能力非常低。
图1-1 交换机的分布式架构
在网络中,可将报文按照功能分为控制报文和数据报文。当交换机上还未建立任何硬件转发表项时,如果报文到达交换机,首包由CPU转发并建立三层转发硬件表项,后续包(即非首包)流量由入端口进入转发芯片,如图1-2所示:
图1-2 交换机对非首包流量的处理
后续包的部分流量1(一般为数据报文)直接由转发芯片转发出去这部分流量不经过CPU,所以该流量的处理也不消耗CPU。这部分流量一般为数据报文。
后续包的部分流量2(一般为控制报文和部分数据报文)经由转发芯片上送CPU,由CPU来决定是否需要将其转发出去或直接在CPU终结。该流量需要消耗CPU,不能进行高速转发。
总的来说,真正决定交换机高速交换转发的是转发芯片中的二三层硬件表项,而转
发芯片的硬件表项来源于CPU维护的软件表项。可以看出,CPU是交换机的核心。
交换机正常启动后,为了维持系统的正常运行,CPU上有大约超过200个活跃的任务用于完成对设备的管理、监控和三层表项学习,并且该任务数量与交换机形态相关。通常交换机支持的特性越多,系统运行的任务也越多。
设备的CPU占用率指一段时间内系统中非空闲任务占用CPU处理的时间比率,是对设备CPU使用情况的一个宏观统计,具有以下的几个重要特点:
持续变化性:系统的CPU占用率不是保持不变的,它是随着系统的运行和外部环境的变化而持续变化的。
非实时性:系统的CPU占用率反映的是一个CPU统计周期内的CPU使用情况,并不是特指某一个时间点的实时占用情况。
实体强相关性:CPU占用率是以物理CPU为粒度进行统计的,通常而言,设备上的每块业务板均有一个单独的物理CPU,因此它们的CPU占用率都是相互独立的。
CPU占用率表示交换机在某个时间点的运行任务情况。如图1-3所示,A任务占用10ms,B任务占用30ms,然后空闲60ms,再又是A任务占10ms,B任务占30ms,空闲60ms。如果在一段时间内都是如此,那么这段时间内的占用率为40%。CPU占用率越高,说明交换机在这个时间上运行了很多任务,反之则很少。
图1-3 任务占用CPU运行时间
可以看出,CPU占用率的高低与CPU的强弱有直接关系,因此,CPU占用率是衡量设备性能的重要指标之一。
2 CPU和CPU占用率原理
需要交换机终结的协议报文
所有目的地址为本机的报文均需要上送CPU处理:
- 各种协议控制报文,如STP、LLDP、LNP、LACP、VCMP、DLDP、EFM、GVRP、VRRP等
- 路由更新报文,如RIP、OSPF、BGP、IS-IS等
- SNMP、Telnet、SSH报文
- ARP、ND回应报文
需要特殊处理的报文
-带option选项的ICMP报文
- 带hop-by-hop选项的IPv6报文
- TTL小于或等于1的IPv4/IPv6数据报文
- 目的IP地址为本机的数据报文
- ARP/ND/FIB Miss报文
应用了ACL,需要CPU处理的报文
- 开启logging功能后,通过ACL deny动作丢弃的报文
- 流策略重定向到CPU的报文
组播特性相关的报文
- PIM、IGMP、MLD、MSDP协议报文
- 未知IP组播流
其他特性的相关报文
- DHCP协议报文
- ARP、ND广播请求报文
- L2PT软转发的L2协议报文(仅Tunnel两端的设备为软转发,中间设备使用芯片硬件转发)
如图2-1所示,报文最终送到主控板的CPU可能经过多次限速,包括:转发芯片的限速、交换网芯片的限速。多次限速逐层形成防护墙,保证主控板CPU的安全。
图2-1 框式交换机上报文的上送限速
如图2-2所示,每个芯片/逻辑的限速主要分为三类:基于协议的限速、基于队列的限速、基于端口的所有报文统一限速。如下以V200R007版本S9300非X1E系列的业务板为例,介绍CPU限速等的缺省情况(其他款型、其他版本可以通过命令display cpu-defend configuration all查看)。
图2-2 上送CPU报文的限速分类
表2-1 S9300上基于协议的限速值
业务板限速值(kbps)
主控板限速值(kbps)
802.1x、arp-miss、mpls-ping、nd、nd-miss、loopbacktest、nd-redirect
smart-link、lacp、lldp、dldp、ttl-expired、mpls-ttl-expired、ntp、hw-tacacs、fib-miss、hgmp-bc、smlk-rrpp、hotlimit、mpls-vccv-ping、arp-request、arp-reply、arp-mff、vpls-arp
eoam-3ah、mpls-one-label
vpls-igmp、mpls-rsvp、ipmc-invalid、bpdu
vrrp、bgp4plus、vrrp6、hvrp、ssh、ftp、snmp、gvrp、eoam-1ag-lblt、pppoe、hopbyhop、hgmp-mc、hgmp-uc、nac-nd、nd-snp-rs、nd-snp-rans、nd-snp-na、mad、nac-arp
mpls-oam、igmp、pim、rip、telnet、tcp、fib-hit、rrpp、udp-helper
stp、mld、unknown-multicast、bpdu-tunnel、ipmc-miss
fib6-hit、mpls-fib-hit
http、pimv6、icmpv6、easy-operation、eoam-1ag、heart-packet
isis、ospf、ospf-hello、bgp、bfd、mpls-ldp、ripng、ospfv3、nac-dhcp、vpls-dhcp-request、vpls-dhcp-reply、nac-dhcpv6、ospfv3-uc
dhcp-client、dhcpv6-request、dhcpv6-reply、radius、y1731
dhcp-server
表2-2 业务板上CPU处理不同报文的队列划分(队列ID越大,转发优先级越高)
业务板上队列ID
快协议报文(快协议指响应时间很短的协议,如BFD,响应时间在100ms以内,如果短暂丢包就可能导致协议震荡)
从业务板CPU上送的报文
stp、smart-link、ldt、lldp、dldp、vrrp、mpls-oam、isis、pim、rip、ospf、ospf-hello、bgp、bfd、mpls-rsvp、mpls-ldp、mpls-ttl-expired、ntp、ripng、ospfv3、bgp4plus、pimv6、vrrp6、hvrp、telnet、ssh、mpls-ping、gvrp、bpdu-tunnel、rrpp、eoam-3ah、eoam-1ag、eoam-1ag-lblt、nd、y1731、mpls-one-label、loopbacktest、bpdu、nap、hgmp-mc、hgmp-uc、hgmp-bc、nd-redirect、nd-snp-rs、nd-snp-rans、nd-snp-na、mad、smlk-rrpp、ospfv3-uc
重要控制面协议报文
arp-request、arp-reply、dhcp-client、dhcp-server、igmp、vpls-igmp、icmp、8021x、http、dhcpv6-request、dhcpv6-reply、icmpv6、mld、ftp、snmp、radius、hw-tacacs、tcp、easy-operation、fib-hit、fib-miss、arp-miss、unknown-packet、udp-helper、arp-mff、pppoe、hopbyhop、mpls-vccv-ping、fib6-hit、nd-miss、nac-dhcp、vpls-arp、vpls-dhcp-request、vpls-dhcp-reply、nac-arp、icmp-ttl-expired、mpls-fib-hit、nac-nd、nac-dhcpv6、heart-packet
重要控制面协议报文
ttl-expired、hotlimit
次要控制面协议报文
unknown-multicast、ipmc-invalid、ipmc-miss
次要控制面协议报文
表2-3 主控板上CPU处理不同报文的队列划分(队列ID越大,转发优先级越高)
主控板上队列ID
快协议报文(快协议指响应时间很短的协议,如BFD,响应时间在100ms以内,如果短暂丢包就可能导致协议震荡)
从业务板CPU上送的报文
stp、smart-link、ldt、lldp、dldp、vrrp、mpls-oam、isis、pim、rip、ospf、ospf-hello、bgp、bfd、mpls-rsvp、mpls-ldp、mpls-ttl-expired、ntp、ripng、ospfv3、bgp4plus、pimv6、vrrp6、hvrp、telnet、ssh、mpls-ping、gvrp、bpdu-tunnel、rrpp、eoam-3ah、eoam-1ag、eoam-1ag-lblt、nd、y1731、loopbacktest、bpdu、nap、hgmp-mc、hgmp-uc、hgmp-bc、nd-redirect、nd-snp-rs、nd-snp-rans、nd-snp-na、mad、smlk-rrpp、ospfv3-uc
重要控制面协议报文
arp-request、arp-reply、dhcp-client、dhcp-server、igmp、vpls-igmp、icmp、8021x、http、dhcpv6-request、dhcpv6-reply、icmpv6、mld、ftp、snmp、radius、hw-tacacs、tcp、easy-operation、fib-hit、fib-miss、arp-miss、unknown-packet、udp-helper、arp-mff、pppoe、hopbyhop、mpls-vccv-ping、fib6-hit、nd-miss、nac-dhcp、mpls-one-label、vpls-arp、vpls-dhcp-request、vpls-dhcp-reply、nac-arp、icmp-ttl-expired、mpls-fib-hit、nac-nd、nac-dhcpv6、heart-packet
重要控制面协议报文
ttl-expired、hotlimit
次要控制面协议报文
unknown-multicast、ipmc-invalid、ipmc-miss
次要控制面协议报文
交换机根据报文的层次(管理/控制/转发)及其重要性来指定将报文发送到哪个CPU队列。CPU队列具有相对优先级。例如,Telnet管理报文和dhcp-client协议报文同时排队,CPU将优先处理5号队列的Telnet管理报文,通过该机制确保CPU高负荷下设备稳定可管理。同时,CPU还通过加权调度机制防止低优先级队列的报文得不到处理。在稳定的网络环境下,上送CPU的报文数量控制在适当的范围内,CPU占用率也稳定在一个合理的区间。如果一段时间内上送CPU的报文数量过大,则CPU会因为忙于处理这些报文而表现为CPU占用率过高。
2.2 CPU处理报文原理(盒式交换机)
华为交换机由硬件转发普通数据报文,无需CPU参与。以下场景会将报文发送给CPU处理:
需要交换机终结的协议报文
所有目的地址为本机的报文均需要上送CPU处理:
- 各种协议控制报文,如STP、LLDP、LNP、LACP、VCMP、DLDP、EFM、GVRP、VRRP等
- 路由更新报文,如RIP、OSPF、BGP、IS-IS等
- NMP、Telnet、SSH报文
- ARP、ND回应报文
需要特殊处理的数据报文
- 带option选项的ICMP报文
- 带hop-by-hop选项的IPv6报文
- TTL小于或等于1的IPv4/IPv6报文
- 目的IP地址为本机的报文
- ARP/ND/FIB Miss报文
基于ACL的特性
- 开启logging功能后,通过ACL deny动作丢弃的报文
- 流策略重定向到CPU的报文
- PIM、IGMP、MLD、MSDP协议报文
- 未知IP组播流
- DHCP协议报文
- ARP、ND广播请求报文,二层交换机配置动态ARP检测DAI(Dynamic ARP Inspection)时也发送ARP报文
- L2PT软转发的L2协议报文(仅Tunnel两端的设备为软转发,中间设备使用硬件转发)
- N:1 VLAN mapping第一个报文上送CPU,后续报文使用硬件转发
交换机采用QoS机制处理上送CPU的报文,确保重要报文优先处理。交换机将上送CPU的不同类型的报文划分到优先级不同的8个队列,不同交换机款型支持上送CPU的报文种类可能不同。以S5700LI形态为例,部分典型报文上送CPU的队列划分如表2-4和图2-3所示,队列ID值越大,优先级越高。
表2-4 CPU处理不同报文的队列划分
IPC、RPC、LACP
内部管理报文
内部软转发的协议报文
Telnet、SSH、LNP、DHCP
管理面协议报文
ARP Request
重要控制面协议报文
STP、SMLK、EOAM、VCMP
重要控制面协议报文
LBDT、LLDP、DLDP、IGMP、ICMP、NTP、802.1x、GVRP、L2PT、ARP Miss、FTP、SNMP
控制面协议报文
图2-3 将不同类型报文分发到CPU队列
交换机根据报文的层次(管理/控制/转发)及其重要性来指定将报文发送到哪个CPU队列。CPU队列具有相对优先级。例如,Telnet管理报文和L2PT软件透传L2协议报文同时排队,CPU将优先处理5号队列的Telnet管理报文,通过该机制确保CPU高负荷下设备稳定可管理。同时,CPU还通过加权调度机制防止低优先级队列的报文得不到处理。在稳定的网络环境下,上送CPU的报文数量控制在适当的范围内,CPU占用率也稳定在一个合理的区间。如果一段时间内上送CPU的报文数量过大,则CPU会因为忙于处理这些报文而表现为CPU占用率过高。
2.3 CPU占用率高造成的影响
当设备转发面上送CPU的报文速率过快(如因网络环路导致CPU短时间内收到大量报文)或者某任务长时间占用CPU时,CPU将高负荷运行,可能无法及时调度其他任务,进而引发业务异常。
CPU占用率过高会影响系统处理能力,导致网络业务表现不如预期,可能导致出现的网络故障现象有:
交换机不能响应正常的管理请求
- Telnet或SSH会话不能建立,导致无法管理设备或者设备反应慢,命令执行有延迟等
- SNMP超时
- MAC/IP Ping耗时很长甚至超时
交换机不能及时转发或回应客户端请求,导致DHCP失败或IEEE 802.1x认证失败
STP拓扑改变甚至出现网络环路
交换机通过CPU周期性的接收BPDU报文维持其Root/Alternate端口角色,如果因上游设备CPU繁忙导致BPDU报文不能及时发出或本机CPU繁忙不能及时处理收到的BPDU报文,交换机会认为到根桥的原路径故障而重新选择Root端口,引起网络重新收敛;如果交换机原来同时存在Alternate端口,则将Alternate端口作为新的Root端口,这时就可能导致网络出现环路。
路由拓扑改变
动态路由协议的保活由CPU完成,如果因CPU繁忙不能及时接收和发送hello报文,就会导致路由震荡,如OSPF震荡、BGP震荡、VRRP震荡。
可靠性检测协议震荡
802.3ah、802.1ag、DLDP、BFD、MPLS OAM等检测协议均由CPU完成定时保活,如果因为CPU繁忙不能及时接收和发送协议报文,将会导致协议震荡,进而影响相关业务流量转发。
LACP类型的Eth-Trunk链路震荡
LACP的保活由CPU完成,如果因CPU繁忙不能及时接收和发送LACP报文,Eth-Trunk会将链路关闭,产生链路震荡。
通过CPU软转发的报文被丢弃或转发时延增大
交换机内存消耗增加
2.4 CPU占用率高属于正常现象的场景
在网络运行中,CPU占用率过高常常会导致业务异常,例如BGP震荡、VRRP频繁切换甚至用户无法登录交换机。但某些情况下,CPU占用率高并不会导致网络问题,例如,交换机在某一时刻集中读取光模块信息、瞬间流量增多等各种具体情况,导致CPU占用率暂时性高的现象是正常的、可接受的,所以不能简单的将CPU占用率高当作故障处理。只有当设备长时间不能正常处理业务时,才需要定位是否由于CPU占用率高而引起的。
如下一些场景可能导致CPU占用率高,属于正常现象,而不是故障场景。如果过了一段时间后,CPU占用率恢复到正常值,则可以不需要处理:
网络中瞬间流量增多
交换机单板刚启动
交换机在某一时间点集中读取光模块信息
交换机在进行生成树的计算
对于MSTP,CPU占用率同实例数和活跃端口数成正比。对于VBST,由于每个VLAN独立运行一个实例,因此在相同VLAN和端口数目下,VBST比MSTP占用更多的CPU资源。
交换机接收到路由更新信息,大规模更新路由表
当接收到路由更新消息时,设备需占用CPU资源将路由信息更新到转发面。对于集群/堆叠系统,路由信息还需要同步到其他成员交换机。
在路由表更新过程中影响CPU占用率大小的因素有:
- 路由表项的规模
- 更新的频率
- 接收更新的路由协议进程数
- 集群/堆叠系统成员交换机数量
交换机在执行copy cfcard:/或输出信息量大的debug等执行时间长的命令
网管系统在频繁操作交换机
导致CPU占用率高的其他事件
- 端口使能了Sticky MAC功能后,快速学习MAC
- 将大量端口同时加入大量VLAN(如通过端口组操作,将大批端口加入大量VLAN、修改大批端口的链路类型等)
- 频繁或大量的IGMP请求
- 大量并发的DHCP请求(如交换机作为DHCP服务器时,恢复与大量用户的连接)
- ARP广播风暴
- 以太网广播风暴
- 软转发大量并发协议报文(如短时间内L2PT透传大量BPDU报文,DHCP Relay/Snooping软转发DHCP报文等)
- 大量不能由转发芯片直接转发的数据报文上送CPU(如ARP-Miss)
- 端口频繁Up/Down
CPU占用率高基础知识都了解了吧~欲知如何定位故障,如何解决解决。敬请期待下一篇~~
(单击可打开此链接)
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点

我要回帖

更多关于 非法占用农用地罪 的文章

 

随机推荐