CPU 飙高系统反应慢怎么排查

2023-11-07 21:52

本文主要是介绍CPU 飙高系统反应慢怎么排查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mic老师面试题摘选  
面试过程中,场景类的问题更容易检测出一个开发人员的基本能力。
这不,一个小伙伴去阿里面试,第一面就遇到了关于“CPU 飙高系统反应慢怎么排查”
的问题?
对于这个问题,我们来看看普通人和高手的回答!
普通人
嗯, CPU 飙高的原因可能是线程创建过多导致的
高手
好的,关于这个问题,我从四个方面来回答。
1. CPU 是整个电脑的核心计算资源,对于一个应用进程来说,CPU 的最小执行单元
是线程。
2. 导致 CPU 飙高的原因有几个方面
a. CPU 上下文切换过多,对于 CPU 来说,同一时刻下每个 CPU 核心只能运行一 个线程,如果有多个线程要执行,CPU 只能通过上下文切换的方式来执行不同 的线程。上下文切换需要做两个事情
i. 保存运行线程的执行状态
ii. 让处于等待中的线程执行
这两个过程需要 CPU 执行内核相关指令实现状态保存,如果较多的上下文切换会占据 大量 CPU 资源,从而使得 cpu 无法去执行用户进程中的指令,导致响应速度下降。 在 Java 中,文件 IO、网络 IO、锁等待、线程阻塞等操作都会造成线程阻塞从而触发 上下文切换
b. CPU 资源过度消耗,也就是在程序中创建了大量的线程,或者有线程一直占用 CPU 资源无法被释放,比如死循环!
CPU 利用率过高之后,导致应用中的线程无法获得 CPU 的调度,从而影响程序的执行 效率!
3. 既然是这两个问题导致的 CPU 利用率较高,于是我们可以通过 top 命令,找到 CPU 利用率较高的进程,在通过 Shift+H 找到进程中 CPU 消耗过高的线程,这里有两 种情况。
a. CPU 利用率过高的线程一直是同一个,说明程序中存在线程长期占用 CPU 没 有释放的情况,这种情况直接通过 jstack 获得线程的 Dump 日志,定位到线 程日志后就可以找到问题的代码。
b. CPU 利用率过高的线程 id 不断变化,说明线程创建过多,需要挑选几个线程 id,通过 jstack 去线程 dump 日志中排查。
4. 最后有可能定位的结果是程序正常,只是在 CPU 飙高的那一刻,用户访问量较大, 导致系统资源不够。
以上就是我对这个问题的理解!
结尾
从这个问题来看,面试官主要考察实操能力,以及解决问题的思路。 如果你没有实操过,但是你知道导致 CPU 飙高这个现象的原因,并说出你的解决思路, 通过面试是没问题的。
好的,本期的普通人 VS 高手面试系列的视频就到这里结束了,

这篇关于CPU 飙高系统反应慢怎么排查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366494

相关文章

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接