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

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”拿!

    推荐阅读
  • 冬天水管结冰怎么解决(如何解决水管结冰的情况)

    用温水浇几遍后,再拿壶热开水,均匀的来回浇在水管上。如果太阳下化不动的话,那就要用热水烫开了。用电吹风机对着冻住的水管吹一吹加热。将管道接口处卸开后,往管道里注入温热的盐水。用破的厚棉衣服,塑料泡沫或塑料保温管等缠住水管。然后,用铁丝使劲的绑一绑,这样能保证水管不再上冻。水是限时供应,等到水淌完后再关水龙头。把热炉子放在水管旁边或者有暖气的地方打开暖气。室内温度上来,就会化开我们冻住的水管了。

  • 强酸强碱的仓储管理(如何解决对地面有强酸强碱要求的甲类车间)

    如果只是为了单纯的防腐,那必然是避重就轻。所以我们首先的要考虑的是如何对地面进行防爆然后在防爆的基础上如何进行防腐,这个顺序是必然的也是不可辩驳的才对。根据以上观点我们可以清楚的得到两种结论:防爆比防腐更加重要。所以能看到这篇文章的业主们在选择防爆还是防腐的问题上切勿走弯路,安全大于天。选择NFJ防爆地坪方是上策。

  • 在天津休学一年后复学怎么弄 休学到期后怎么复学

    在天津休学一年后复学怎么弄?休学时间超过三个月,复学时学校可根据学生实际学力情况,安排到相应年级就读。休学一般为一学期,最长不超过一学年。休学期满仍不能复学者,学生父母或其他法定监护人应在休学期满前一周内,提出书面申请,凭相关证明材料,续办休学手续。

  • 如何制作东北糯米糕(东北糯米糕做法)

    如何制作东北糯米糕配料:糯米粉适量、葡萄干一小把、纯牛奶适量、白糖一勺、黑芝麻适量。调制糯米粉,将糯米粉倒入碗中加入白糖、纯牛奶,做完以后加入适量的清水搅拌均匀,将碗中的糯米粉制作成糊状,并且用筷夹起碗中的糯米粉可以五六秒钟不掉,如果这个状态出现就说明糯米粉已经调制完成。

  • 男子发现女子与数名男子有染(女子以谈恋爱名义与男子开房)

    两人见面后相互感到满意,工作原因,薛某和刘某暂别,期间偶尔微信有联系。刘某提出自已没有好衣服,薛某转帐给刘某1000元。两人洗濑上床后,刘某一直用手机录两人的所有动作,以至于两人发生性关系的全部过程。刘某以谈恋爱为名,行卖淫之实卖淫是指为获取物质报酬,以产生利益交换的方式有代价地与不特定的性对象发生的有偿性性交行为。只要查清刘某其行为的反复性,如三次以上类似行为,完全可以认定其行为为卖淫。

  • 什么样的蜂蜜是好蜂蜜 什么样的蜂蜜是最好的蜂蜜

    蜂蜜结晶细腻的是好蜜,颗粒感强的可能是白糖沉淀。

  • 魔兽争霸三游戏攻略(魔兽争霸3经典地图BOOM海战手游曝光)

    现在,由这支地图的作者组建团队开发的同名手游《BOOM海战》也曝光了,并开启预约。手游版的《BOOM海战》是一款海岛战争题材的策略类手游,保留了游戏特点与核心玩法,在这里你可以招募海盗船员,组建超级船队,各样战舰材料收集提升战舰实力,参与实时海战,结识众多盟友,成就一番海上霸业。熟悉的配方,熟悉的味道,作为曾经魔兽粉的帘子,十分期待《BOOM海战》手游的到来,你呢?

  • 再回首歌词完整版(再回首恍然如梦)

    再回首恍然如梦再回首我心依旧只有那无尽的长路伴着我再回首背影已远走再回首泪眼朦胧……但我知道,在你心中那个小布永远都存在着,永远都停留在你的心中;亲爱的哥哥,这巳足够了,小布不想索取太多?亲爱的哥哥,你也许会怪小布很绝情,小布很无理,不管怎样?小布永远都认为我所有的绝情,对你来说,都是有利的?你有你的事业,你有你的前程,请原谅小布不能陪你走你想要走的路?

  • 索引是内模式还是外模式 索引属于外模式

    索引属于内模式,索引的写入修改了数据库的物理结构,而不是简单的逻辑设计。内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式翱物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。

  • 成功率高的腌萝卜方法(腌萝卜时最忌用盐杀水)

    今天清清参加同桌的婚礼,从早上忙到晚上,终于熬到饭桌前。这饭店做的萝卜酸真的好吃,跟外面的相比起来好吃不知道多少倍。要是这萝卜酸自己在家做,天天都能吃,这夏天再热都能吃得下饭。这样杀水后的萝卜不仅放黄还会回软,做出来的萝卜酸非常不好吃。静置1个小时后,让白砂糖侵入到萝卜内部,将多余的水份杀出。最后的最后,将腌好的萝卜酸放进玻璃罐子里面保存,继续腌制30分钟即可。