肥宅钓鱼网
当前位置: 首页 钓鱼百科

cpu运行缓慢是怎么回事(系统反应慢怎么排查)

时间:2023-06-29 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

导致CPU飙高的原因有以下两个:1、CPU上下文切换过多。上下文切换需要做两个事情保存运行线程的执行状态让处于等待中的线程执行这两个过程需要CPU执行内核相关指令实现状态保存,如果较多的上下文切换会占据大量CPU资源,从而使得CPU无法去执行用户进程中的指令,导致响应速度下降。CPU利用率过高之后,导致应用中的线程无法获得CPU的调度,从而影响程序的执行效率!

面试过程中,场景类的问题更容易检测出一个开发人员的基本能力。这不,有一位小伙伴去阿里面试,第一面就遇到了关于“CPU 飙高系统反应慢怎么排查”的问题?当时这位小伙伴不知从何下手。

今天,我给大家分享一下我的解决思路。

CPU 是整个电脑的核心计算资源,对于一个应用进程来说,CPU 的最小执行单元是线程。导致 CPU 飙高的原因有以下两个:

1、CPU 上下文切换过多。

对于 CPU 来说,同一时刻下每个 CPU 核心只能运行一个线程,如果有多个线程要执行,CPU 只能通过上下文切换的方式来执行不同的线程。上下文切换需要做两个事情

保存运行线程的执行状态

让处于等待中的线程执行

这两个过程需要 CPU 执行内核相关指令实现状态保存,如果较多的上下文切换会占据大量CPU 资源,从而使得 CPU 无法去执行用户进程中的指令,导致响应速度下降。在 Java 中,文件 IO、网络 IO、锁等待、线程阻塞等操作都会造成线程阻塞从而触发上下文切换。

2、CPU 资源过度消耗。

也就是在程序中创建了大量的线程,或者有线程一直占用CPU 资源无法被释放,比如死循环!CPU 利用率过高之后,导致应用中的线程无法获得 CPU 的调度,从而影响程序的执行效率!既然是这两个问题导致的 CPU 利用率较高,于是我们可以通过 top 命令,找到CPU 利用率较高的进程,在通过 Shift H 找到进程中 CPU 消耗过高的线程,这里有两种情况。

CPU 利用率过高的线程一直是同一个,说明程序中存在线程长期占用 CPU 没有释放的情况,这种情况直接通过 jstack 获得线程的 Dump 日志,定位到线程日志后就可以找到问题的代码。

CPU 利用率过高的线程 ID 不断变化,说明线程创建过多,需要挑选几个线程 ID,通过 jstack 去线程 dump 日志中排查。最后有可能定位的结果是程序正常,只是在 CPU 飙高的那一刻,用户访问量较大,导致系统资源不够。

以上就是我对这个问题的理解!从这个问题来看,面试官主要考察实操能力,以及解决问题的思路。如果你没有实操过,但是你知道导致 CPU 飙高这个现象的原因,并说出你的解决思路,通过面试是没问题的。

我是被编程耽误的文艺Tom,如果我的分享对你有帮助,请动动手指分享给更多的人。关注我,面试不再难!

最后,7/8/9月份资料文档已整理,包含如下↓(还在持续更新中!):

①100道最新大厂经典面试题解析资料文档!

②15万 字Java面试题解析和配套答案!

③从应届生到高级开发都适用的简历模板!

④从入门到精通的架构师学习路线图!

⑤还有各种技术流程图,路径图!

有需要的 Si 我 “666”拿!

    推荐阅读
  • 丧偶儿子再嫁二婚丈夫(为二婚老公生下儿子)

    讲述人:雯雯年龄:38岁职业:职员雯雯和丈夫是重组家庭,两人之前各有一段失败的婚姻。雯雯和前夫育有一子,跟随前夫生活,雯雯现任丈夫和前妻生的女儿跟随他们一起生活。雯雯的闺蜜就跟她出主意让她管老公的钱,但是雯雯提出后却被老公拒绝了。雯雯在老家心神不宁地等了两个月,老公终于松口了,同意生下这个孩子。就这样,雯雯又自己拖着行李箱坐火车回去了。

  • 猕猴桃怎么吃才正确(猕猴桃怎么吃才正确方法)

    猕猴桃被人们称为维C之王和水果之王,它味道酸甜爽口,营养价值特别高,但是它表面有毛,很多人在面对猕猴桃时都不知道它应该怎么吃,也不知道它怎么吃才正确。

  • 比例尺公式(比例尺定义)

    下面内容希望能帮助到你,我们来一起看看吧!比例尺是表示图上一条线段的长度与地面相应线段的实际长度之比。比例尺有三种表示方法:数值比例尺、图示比例尺和文字比例尺。一般来讲,大比例尺地图,内容详细,几何精度高,可用于图上测量。小比例尺地图,内容概括性强,不宜于进行图上测量。

  • 以色列化学武器公约(化学武器在中东阴魂不散)

    两伊战争使用的化学武器炮弹要追究中东化学武器泛滥的责任,除了一些地区国家,美苏争霸的冷战背景也决不能忽略。特别是美国在中东化学武器上的双重标准,极大挫伤了国际社会禁止化学武器的努力。出于遏制伊朗和与苏联争夺中东的需要,美国在暗地里还对伊拉克化学武器上采取纵容态度。化学武器在中东的蔓延将会受到极大的限制,甚至会逐渐萎缩。

  • 云石胶怎么去除方法(云石胶如何去除)

    跟着小编一起来看一看吧!云石胶怎么去除方法云石胶需要使用肥皂水将其去除,首先将肥皂水涂抹在云石胶上,肥皂水属于碱性物质,会逐渐分解软化云石胶物质,然后使用棉布慢慢擦拭云石胶,待云石胶清除干净后再用湿抹布擦拭干净。云石胶可以使用清除剂将其去除,首先在棉布上蘸取一些清除剂,然后将棉布敷在清除剂上,等待一段时间,云石胶逐渐被分解后,使用棉布对准云石胶的位置慢慢擦拭,待云石胶完全去除即可。

  • 痛风性关节炎发作的时候怎么缓解(判断痛风性关节炎来临时的症状)

    痛风急性发作时常见于深夜,单侧第一跖趾关节易发病,受累关节可呈现撕裂样或刀割样疼痛,往往因为疼痛而彻夜无眠。急性期优先选择非甾体类抗炎药,等症状得到控制后再停药,用药期间需定期监测血肌酐。随着病情进一步发展,可诱发高血压、脑动脉硬化以及心肌梗死等。

  • 高血压的人吃高蛋白的食物行吗(人越胖血压越高)

    011、警惕超重、肥胖少吃动物脂肪,选择植物油。选用低饱和脂肪酸、低胆固醇的食物,如蔬菜、水果、全谷食物、及低脂乳等。动物性脂肪含饱和脂肪酸高,可升高胆固醇,易导致血栓形成,使高血压脑卒中的发病率增加。肥胖者患高血压和糖尿病的危险,分别是正常BMI者的3.0倍和2.5倍。食盐从9g降至6g,脑卒中发病率下降22%,冠心病发病率下降16%。女性饮酒量减半。高血压患者不宜饮酒,尽量戒酒。

  • 分布式数据库有什么特点(分布式数据库有哪些特点)

    分布式数据库有什么特点分布式数据库是数据库的一种,是数据库技术和网络技术的结合产物。各有优点和缺点.分布式数据库分为逻辑上分部物理上分布及逻辑上分布物理上集中两种。分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。

  • 电动车为什么分绿牌蓝牌黄牌(电动车分为绿牌)

    电动车分为绿牌自从新国标电动车管理规定实施以开始,我们惯用的电动车不仅有了类型之分,也有了不同颜色的号牌之分,不同颜色的牌照代表着不同的上路权限不过,由于各地的管理办法不同,电动车牌照的颜色能够代表的车型也有所不同。

  • 南昌有哪些网红打卡地(原来南昌这么好玩)

    著名的《梅岭三章》就是陈毅在这样的绝境中写下的。乘坐205路长班、205路空调到市洪都中医院站。