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

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

    推荐阅读
  • 冰封千年独爱一人(下月起深情执念)

    巨蟹座往往对情绪的到来犹豫不决。然而,巨蟹座往往与对方有矛盾,而从长远来看,对方会冷酷无情地选择离开。此外,射手座人特别忠诚和诚实。就情感而言,射手座大多认为真爱本身与其日常生活无关。但一旦射手座处于一段关系中,他们就会与对方分享最真诚的自我。尤其是分手后,射手座的悲伤无法表达。从下个月开始,深情、仓促地离开,射手座彼此相爱,他们的余生都不会后悔,很难把眼泪藏在心里。

  • 完整的小龙虾肉怎么做(做的步骤是什么)

    剥下虾钳,并吃掉虾钳里面的肉令虾头与虾身分离一手拿着虾身,一手抓着虾头,轻轻一扭,虾头与虾身分离,现在小编就来说说关于完整的小龙虾肉怎么做?完整的小龙虾肉怎么做剥下虾钳,并吃掉虾钳里面的肉。双手用力将虾毂捏碎,同时下压第二节虾壳。握住虾尾,轻轻拔出虾身里的虾肉。需要注意的是,虾线抽掉,小龙虾体内的蛋白质含量很高,且肉质松软,易消化。

  • 吃柿子有什么讲究什么东西不能吃(再次奉劝柿子再好吃)

    一般市场上所卖脱涩型柿子,都是经过处理的,无需担心其中鞣酸过多,只要适量便可。

  • 水浒传1到4回概括(水浒传1到4回主要内容)

    回至方丈,不顾众道士劝阻,打开“伏魔之殿”,放出妖魔,遂致大祸。他吩咐从人,隐瞒走妖魔一节,假报天师除尽瘟疫,得到仁宗赏赐。被提拔为殿帅府太尉,对曾打翻他的王升的儿子八十万禁军教头王进施行报复。王进出走延安府,在史家村给史进教枪棒。史进因擒少华山陈达而和朱武、杨春相识往来。华阴县中秋夜来史家村捉拿赏月喝酒吃肉的史进并少华山三好汉。鲁达救助金翠莲父女,打死郑屠。鲁达晚不坐禅,喝酒打人。

  • 激活医保电子凭证后原有的实体卡还能用吗

    实体卡还可以继续使用,功能不会受到影响。参保人可自行选择使用医保电子凭证或实体卡。医保电子凭证是由国家医保信息服务平台统一生成,是基于医保基础信息库为全体参保人员生成的医保身份识别电子介质。医保电子凭证广泛应用于就医购药、医保查询、费用结算等,与实体卡相比,医保电子凭证具备方便快捷、应用丰富、全国通用、安全可靠等优点。

  • 鸡蛋的营养吃法推荐(鸡蛋的营养吃法介绍)

    下面内容希望能帮助到你,我们来一起看看吧!鸡蛋的营养吃法推荐带壳水煮蛋。不加一滴油、烹调温度不高、蛋黄中的胆固醇也没接触氧气,因此是对心脏最有益的吃法。是指用少量的油,小火煎成的蛋饼,因此蛋黄中的胆固醇氧化不多。鸡蛋打散后再炒,蛋黄中的胆固醇和空气接触较充分,氧化较多。鸡蛋比较吸油,用油量也较大。煎荷包蛋和摊鸡蛋。这两种做法的蛋白质消化率为98%。

  • wps文档没保存怎么找 怎样在wps找到未保存文档

    wps文档没保存,其找回的方法是:1、首先打开软件,然后点击左上角右侧的图标;2、再点击,选择,最后找到需要的文档,双击打开即可。WPSOffice是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字编辑、表格、演示稿等多种功能。

  • 怎么做莲藕糯米团子(莲藕糯米团子(的做法)

    接下来我们就一起去研究一下吧!怎么做莲藕糯米团子食材:莲藕,糯米做法:将糯米塞入莲藕空中用牙签将莲藕盖固定。锅中烧水加入红糖后下入糯米莲藕熬制。

  • 沤肥和堆肥的区别,沤肥要密封还是透气

    堆肥有机质含量较高,约占15-25%。普通堆肥一般混土较多,堆温不超过50℃,熟时间较长,一般需要3-5个月,但方法比较简单,适用于常年积肥。冬季沤制可能需要2-3个月的时间。沤肥彻底腐熟后才能使用,否则可能会带来肥害。可以加入适量的橘子皮,使植物酸性增强,可以加入适量的香蕉皮,增加钾元素。

  • 山东山西的山 山东山西隔着什么山

    东部的华北平原是落叶阔叶林地带,西侧的黄土高原是森林草原地带和干草原地带,两侧的植被、土壤垂直带特征也存在明显差异。在六亿年以前,太行山地区还是一片汪洋大海,后来经过了频繁的地壳活动,地面上升下降。