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 高手面试系列的视频就到这里结束了,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】用户管理权限控制

文章目录 前言一. 用户管理1. 创建用户2. 删除用户3. 修改用户密码 二. 权限控制1. 用户授权2. 查看权限3. 回收权限 结束语 前言 MySQL的数据其实也以文件形式保存,而登录信息同样保存在文件中 MySQL的数据在Linux下默认路径是/var/lib/mysql 登录MySQL同样也可以…

如何在macbook上删除文件?Mac删除文件的多种方法

在使用MacBook电脑时,桌面上经常会积累大量的文件,而这些文件可能已经不再需要或已经过时。为了保持桌面的整洁和提高电脑性能,我们需要及时删除这些文件。本文将介绍MacBook怎么删除桌面文件,以及macbook删除桌面文件快捷键。 一…

商品样式及详情

<!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1"><title>商品详情</title><link rel"stylesheet" href".…

C 语言左移位操作在kernel驱动子系统中的特殊用途

文章目录 前言一、C语言左移位操作介绍1. 左移位二、左移位操作在kernel 驱动子系统中的应用1. 左移位操作在 V4L2, Media 子系统中的应用实例2.左移位操作在 DRM 子系统中的应用实例2.1 左移位操作在struct drm_crtc 中的应用2.2 左移位操作在struct drm_encoder 中的应用总结…

Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)

一、Flutter框架的整体结构&#xff1a; Flutter是Google推出并开源的跨平台开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用&#xff0c;一套代码同时运行在ios和Android平台。不仅如此&#xff0c;Flutter还支持Web、桌面、嵌 入应…

日志门面技术

1.JCL public abstract class LogFactory {public static Log getLog(Class clazz) throws LogConfigurationException {// 默认实现类为LogFactoryImplreturn getFactory().getInstance(clazz);} }利用LogFactoryImpl实例化具体的日志框架。其中&#xff0c;如果存在log4j依赖…

【工具】OCR方法|不用下载额外的软件,提取扫描中英文PDF的目录文本的最优解!(一)

需求&#xff1a; 1&#xff09;从PDF里快速提取目录&#xff1b; 2&#xff09;不想下载任何软件。 我提取出来的目录文本会用于嵌入到PDF中&#xff0c;向PDF批量添加目录的软件以及软件的使用方法可以看我上一篇文章&#xff1a;PDF批量插入目录。 以下是我自己能想到的方…

问chatgpt最近生活的困难

你知道吗&#xff0c;因为我做的所有的事情没有任何目的性&#xff0c;所以曾经过的很好&#xff0c;这种很好是一种逃避式的好&#xff0c;怎么说呢&#xff1f;遇到困难了&#xff0c;那就不做了&#xff0c;换下一个项目。比如打游戏&#xff0c;如果我这局玩王者荣耀&#…

ubuntu 20.04无法连接网络,网线灯不亮,network-manager也启动不了

背景 系统编程只读的了&#xff0c;进入到initramfs模式&#xff0c;执行了下边语句&#xff0c;发现不小心把windows也给执行了&#xff0c;报错很多乱码&#xff0c;强制退出 执行 fsck -y /dev/sdb4 fsck -t ext4 /dev/sdb5 -y ## windows 时强制退出了导致很多文件损坏…

基于yolov2网络的人脸识别系统matlab仿真,包括识别正脸,侧脸等

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、训练阶段 4.2、预处理阶段 4.3、识别阶段 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................…

FastGPT | 3分钟构建属于自己的AI智能助手

这是一篇使用指南&#xff01;&#xff01;&#xff01; FastGPT是什么&#xff1f; FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景&…

BEV-YOLO 论文学习

1. 解决了什么问题&#xff1f; 出于安全和导航的目的&#xff0c;自驾感知系统需要全面而迅速地理解周围的环境。目前主流的研究方向有两个&#xff1a;第一种传感器融合方案整合激光雷达、相机和毫米波雷达&#xff0c;和第二种纯视觉方案。传感器融合方案的感知表现鲁棒&am…

DO LARGE LANGUAGE MODELS KNOW ABOUT FACTS?

本文是LLM系列文章&#xff0c;针对《DO LARGE LANGUAGE MODELS KNOW ABOUT FACTS?》的翻译。 TOC 摘要 大型语言模型&#xff08;LLM&#xff09;最近推动了一系列自然语言处理任务的显著性能改进。在预训练和指令调整过程中获得的事实知识可以用于各种下游任务&#xff0c…

一句话说明:企业架构框架鼻祖Zachman

问&#xff1a;禁止废话&#xff0c;一句话表达&#xff0c;Zachman是什么&#xff1f;包含哪些内容&#xff1f; 韩老师正经回答&#xff1a;Zachman是企业架构框架鼻祖&#xff0c;包含6行6列的矩阵式架构内容。6列是5W1H&#xff08;What、How、Where、Who、When、Why&…

Vue3 简单实现虚拟Table,展示海量单词.利用WebAPI speechSynthesis,朗读英语单词

目录 本页面完整代码 视频演示 完整的页面代码 利用webapi speechSynthesis帮助我们自动郎读英语单词&#xff0c;可以利用这个API&#xff0c;做一些小说朗读或到账提示。 本页面完整代码 用Vue写了一个简单页面&#xff0c;里面还写了一个简单的虚拟Table支持海量数据展示…

kubernetes存储-volumes

目录 一、Volumes的简介 二、emptyDir卷 1、emptyDir的引入 2、emptyDir 的使用场景 3、多容器共享volumes 4、emptyDir缺点 三、hostPath卷 1、hostPath卷简介 2、创建hostPath卷 3、NFS共享文件 四、PersistentVolume&#xff08;持久卷&#xff09; 1、PV与P…

免费音效素材,不能错过这6个网站

找免费音效素材&#xff0c;那必须要上这6个网站&#xff0c;热门音效、BGM都能免费下载&#xff0c;赶紧收藏起来。 1、菜鸟图库 https://www.sucai999.com/audio.html?vNTYwNDUx 菜鸟图库是一个综合性素材网站&#xff0c;站内涵盖设计、图片、办公、视频、音效等素材。其中…

数据可视化:动态柱状图

终于来到最后一个数据可视化的文章拿啦~~~ 在这里学习如何绘制动态柱状图 我先整个活 (๑′ᴗ‵๑)&#xff29; Lᵒᵛᵉᵧₒᵤ❤ 什么是pyecharts&#xff1f; 答&#xff1a; Python的Pyecharts软件包。它是一个用于Python数据可视化和图表绘制的库&#xff0c;可用于制作…

tomcat默认最大线程数、等待队列长度、连接超时时间

tomcat默认最大线程数、等待队列长度、连接超时时间 tomcat的默认最大线程数是200&#xff0c;默认核心线程数(最小空闲线程数)是10。 在核心线程数满了之后&#xff0c;会直接启用最大线程数&#xff08;和JDK线程池不一样&#xff0c;JDK线程池先使用工作队列再使用最大线程…

力扣最热一百题——盛水最多的容器

终于又来了。我的算法记录的文章已经很久没有更新了。为什么呢&#xff1f; 这段时间都在更新有关python的文章&#xff0c;有对python感兴趣的朋友可以在主页找到。 但是这也并不是主要的原因 在10月5号我发布了我的第一篇博客&#xff0c;大家也可以看见我的每一篇算法博客…