当前位置:网站首页>CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
2022-08-04 18:28:00 【Tom弹架构】
【Java面试】场景面试题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,关注我,面试不再难!
最后,我把往期分享的面试题全部整理成了1份10W字的文档,希望能够以此来提高各位粉丝的通过率
完整版面试资料和答案以及PDF文档 :
扫描下方名片领取!
↓ ↓ ↓
边栏推荐
- 使用scikit-learn计算文本TF-IDF值
- 12. SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值
- Matlab drawing 1
- Web端即时通讯技术:WebSocket、socket.io、SSE
- dotnet core 输出调试信息到 DebugView 软件
- 动态数组底层是如何实现的
- 数仓相关,总结
- 全球电子产品需求放缓:三星越南工厂大幅压缩产能
- C#爬虫之通过Selenium获取浏览器请求响应结果
- How does EasyCVR call the double-speed playback of device recording through the interface?
猜你喜欢
Win10只读文件夹怎么删除
用Excel绘制统计图
入选爱分析·银行数字化厂商全景报告,网易数帆助力金融数字化场景落地
关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
MMDetection 使用示例:从入门到出门
基于 eBPF 的 Kubernetes 可观测实践
2019 Haidian District Youth Programming Challenge Activity Elementary Group Rematch Test Questions Detailed Answers
力扣学习---0804
leetcode 14. 最长公共前缀
Nintendo won't launch any new hardware until March 2023, report says
随机推荐
YOLOv7-Pose尝鲜,基于YOLOv7的关键点模型测评
July 31, 2022 Summary of the third week of summer vacation
(ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
数据集成:holo数据同步至redis。redis必须是集群模式?
如何封装 svg
2019 Haidian District Youth Programming Challenge Activity Elementary Group Rematch Test Questions Detailed Answers
群友求助,一周没有搞定的需求,3分钟就解决了?
网页端IM即时通讯开发:短轮询、长轮询、SSE、WebSocket
powershell和cmd对比
斯坦福:未来的RGB LED可以贴在你的皮肤上
通俗易懂-二维数组只能省略行不能省略列-人话版本
The Industrial Metaverse Brings Changes to Industry
基于 eBPF 的 Kubernetes 可观测实践
巴比特 | 元宇宙每日必读:微博动漫将招募全球各类虚拟偶像并为其提供扶持...
Hezhou Cat1 4G module Air724UG is configured with RNDIS network card or PPP dial-up, and the development board is connected to the Internet through the RNDIS network card (taking the RV1126/1109 devel
Flask框架实现注册加密功能详解【Flask企业课学习】
路由技术
How does EasyCVR call the double-speed playback of device recording through the interface?
asp dotnet core 通过图片统计 csdn 用户访问
使用bash语句,清空aaa文件夹下的所有文件