CPU飙高系统反应慢怎么排查?
什么是CPU
CPU是整个电脑的核心计算资源,对于一个应用程序来说,CPU是最小执行单元是线程
导致CPU飙高的原因
- CPU的上下文切换过多,对于CPU来说,同一个时刻下每个CPU核心只能运行一个线程,如果有多个线程要去被执行怎么办,CPU只能通过上下文切换的方式来执行调度不同的线程,上下文切换需要做两个事情,第一个是保存运行中线程的执行状态,第二个是处于等待中的线程恢复执行,这两个过程需要CPU执行内核相关指令,去实现状态的保存和恢复,如果较多的上下文切换,会占据大量的CPU资源,从而使得CPU无法执行用户进程中的真正指令,导致响应速度下降,在java中文件IO,网络IO,锁等待这些都会造成线程阻塞,而线程阻塞就会导致CPU的上下文切换
- CPU资源过度消耗,也就是在程序中创建了大量的线程,或者有线程一直占据CPU资源无法被释放,比如说像死循环,CPU利用率过高之后,导致CPU程序中的线程无法去获得CPU的调度从而影响程序的执行效率,所以既然是这两个问题导致CPU利用率较高,可以通过
top
命令找到利用率较高的进程,在通过Shift+H
找到进程中CPU消耗过高的线程,这里有两种情况,第一种情况CPU利用率过高的线程一直是同一个,也就是线程ID没有变化,说明在程序中存在长期占用CPU没有释放的一个情况,那么这种情况直接通过jstack
获得线程Dump日志,定位到线程日志后,就可以找到问题的代码。第二个是CPU利用率过高的线程ID不断变化,那么说明线程创建过多,需要去挑选几个线程ID,通过jstack
获得线程Dump中去进行排查,最后有可能定位的结果是程序正常,只是在CPU飙高的那一刻,用户访问量非常大导致系统资源不够,那么这个时候,我们采取的手段是,去增加系统资源
CPU飙高系统反应慢怎么排查?相关推荐
- windows linux cpu 抢占式 时间片_阿里技术专家谈:CPU飙高,系统性能问题如何排查?...
导读:压测时或多或少都收到过CPU或者Load高的告警,如果是单机偶发性的,经常会认为是"宿主机抢占导致的",那事实是否真是如此呢?是什么引起了这些指标的飙高?网络.磁盘还是高并发 ...
- CPU飙高,系统性能问题如何排查?
简介:压测时或多或少都收到过CPU或者Load高的告警,如果是单机偶发性的,经常会认为是"宿主机抢占导致的",那事实是否真是如此呢?是什么引起了这些指标的飙高?网络.磁盘还是高并发 ...
- CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
[Java面试]场景面试题CPU突然飙高,系统反应慢怎么排查 面试过程中,场景类的问题更容易检测出一个开发人员的基本能力.这不,有一位小伙伴去阿里面试,第一面就遇到了关于"CPU 飙高系统反 ...
- CPU load和CPU使用率飙高,系统性能问题如何排查?
压测时或多或少都收到过CPU或者Load高的告警,如果是单机偶发性的,经常会认为是"宿主机抢占导致的",那事实是否真是如此呢?是什么引起了这些指标的飙高?网络.磁盘还是高并发?有什 ...
- JVM优化之系统CPU飙高和GC频繁
本文来说下JVM优化之系统CPU飙高和GC频繁 文章目录 概述 Full GC次数过多 CPU过高 某个线程进入WAITING状态 死锁 本文小结 概述 处理过线上问题的同学基本上都会遇到系统突然运行 ...
- JVM中如何排查CPU飙高的问题
1.虚拟机对象布局 布局:对象头.实例数据.对齐填充 对象头: Mark Word 8字节,hashcode值.GC分代信息.偏向锁信息: Class Po ...
- 面试官:线上服务CPU飙高怎么排查?
用jstack排查 先执行top,找到CPU占用比较高的进程 jstack 进程id > show.txt 找到进程中CPU占用比较高的线程,线程id转为16进制 到show.txt文件中根据线 ...
- CPU 飙高问题排查和解决方法
摘要 本文档记录了排查 CPU 飙高问题的处理过程和解决方法,从多个方面进行分析和排查. 问题简述 在一个生产环境中发现 CPU 飙高问题,但是无法确定问题的具体原因. 排查方法 使用 jstack ...
- linux服务器CPU飙高排查
文章目录 前言 一.第一步 top 二.根据pid查找具体线程 2.根据pid找到16进制 3. 根据进程和线程查找原因 总结 前言 系统cpu飙高,尤其对于后端人员来说,其实应该学会排查,这样也算是 ...
- 你要偷偷学会排查线上 CPU 飙高的问题,然后惊艳所有人!
作者 l Hollis 来源 l Hollis(ID:hollischuang) 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入 ...
最新文章
- 系统架构的过程 浮现式设计
- b样条曲面绘制 opengl_3dmax在曲面上如何绘制样条线,都在这里了
- .NET Micro Framework常见问题问答
- MyEclipse 2013 新功能介绍
- LeetCode 06Z字形变换07整数反转
- 【如何利用idea提交本地代码到git远程仓库,史上最详细教程,建议收藏!】
- 自然语言系列学习之表示学习与知识获取(六)融合实体描述的知识表示和融合实体所在句子的知识表示
- 嵌入式系统中看门狗概述。。。
- html文档主体的根标签,2 HTML简介标签嵌套和并列关系文档声明
- 薅羊毛 Colab使用外部数据的7种方法!
- 逻辑斯蒂回归和感知机模型、支持向量机模型对比
- Spring操作数据库几十次后就JDBC begin transaction failed
- 无法找到音频输入输出设备
- 英尺英寸和厘米的换算_英尺米换算(英尺英寸与厘米换算器)
- 百词斩不复习_不背单词好用还是百词斩好用?
- CoinUp开启GameFi新世界—魔法元世界(MAC)
- 设计模式-七大原则(图解一目了然)
- 嵌入式linux pam,PAM介绍(一)
- 消息队列-beanstalkd
- 大公司高级Android工程师技能要求
热门文章
- 刚才对着电脑发呆了很久,天马行空想起在B站看到的两句话,感悟颇多,活出一个真正有灵魂的人吧。分享给大家。
- 生存分析第四课:Cox Proportional hazards model
- python 数组的排列与组合:combinations 与 permutations
- animation动画不生效_你可能不知道的Animation动画技巧与细节
- git push 遇到的rejected问题
- linux 查看vcf文件,转载-VCF格式详解
- summernote 工具栏相关
- nvm npm exit status 1:乱码
- 化合物修饰壳聚糖水凝胶:丙烯酸接枝/聚乙烯醇/温敏淫羊藿苷/醛-亚胺-壳聚糖水凝胶的制备
- 【京东商城首页实战4】topbanner制作