高级必会,摸鱼必背之CPU过高常见原因与解决
1.CPU过高常见原因
- 代码的锅, 比如 :死循环,递归
- 系统创建了大量线程池。线程池并发执行导致CPU过高
- JVM在频繁执行full gc
2.频繁full gc原因
- JVM内存配置不合理,导致新生代ygc快速进入老年代,老年代迅速撑满触发full gc.
- 存在内存泄露,内存里驻留了大量对象进入老年代gc不释放,导出少量对象进入老年代就会触发full gc.
- 元空间(永久代)设置太小类多塞满导致频繁full gc.
- 代码有System.gc(),高并发下频繁full gc。
3.线上服务的CPU很高,怎么排查问题?
3.1排查步骤
- top 命令,查看占用CPU高的进程pid
- top -Hp pid 查看进程中最耗CPU的子线程
- printf %x tid 将线程id 转换成16进制
- jstack pid<开始的进程id> | grep <上一步转换出来的二进制线程id> -C10
如果说系统慢,那么要特别关注日志中的 Blocked,Waiting on condition
3.2常见问题
对于jstack日志,我们要着重关注如下关键信息
- OOM:内存溢出 (java.lang.OutOfMemoryError)
- Deadlock:表示有死锁
- Waiting on condition:等待某个资源或条件发生来唤醒自己。具体需要结合jstacktrace来分析,比如线程正在sleep,网络读写繁忙而等待
- Blocked:阻塞
- Waiting on monitor entry:在等待获取锁
附录:完整排查过程
第一步:top 命令,查看占用CPU高的进程pid
top
第二步:top -Hp pid 查看进程中最耗CPU的子线程
top -Hp 14036
第三步:printf %x tid 将线程id 转换成16进制
printf %x 14038 \n
第四步:jstack pid<开始的进程id> | grep <上一步转换出来的二进制线程id> -C10
jstack 14036 | grep 36d6 -C20
注:jstack 是 在 jdk 包 bin 目录下的工具
找到业务中的代码行数定位问题
高级必会,摸鱼必背之CPU过高常见原因与解决相关推荐
- 义正词严的摸鱼 | 摸鱼系列
一时兴起,想写一些自言自语的东西,原有的系列先暂停一周更新,我努力重构一下笔者的人设试图挽回持续下滑的阅读量. 摸鱼系列,主要写一些自言自语的,轻松的东西. 大家都上班摸鱼的经历,而且有各种各样好玩的 ...
- 闲鱼服务器临时维护,做好闲鱼运营必知技巧,这就是你不会做的一些原因
闲鱼运营的办法其实不是很难,首先我们要掌握对一个平台的了解,以及闲鱼的动态还有规则.不要什么不知道就开始上去卖货然后过着时有时无的日子,这样是行不通的,闲鱼无需经过复杂的开店流程,即可达成包括一键转卖 ...
- 如何“阻止”程序员上班摸鱼?
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处. 本篇文章纯属虚构,并没有科学依据.为了避免有人找我寻仇,您在转载或者转发的时候,一定要保留此声明.否则我会有生命危险.你的 ...
- 上班在群里摸鱼,逮到一个字节10年测试开发,聊过之后羞愧难当...
老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得某疼.前几天我在上班摸鱼刷群的时候认识了一位字节测试开发大佬,在字节工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一定的地位. ...
- 互联网摸鱼日报(2022-09-21)
互联网摸鱼日报(2022-09-21) InfoQ 热门话题 深化数字化转型的关键途径:为场景找技术 Linux之父:不出意外,Rust将出现在Linux 6.1版本中 只擅长构建软件是不够的,我们必 ...
- 上班摸鱼在群里吹牛B,逮到一个华为10年老Java开发,聊过之后收益良多...
老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼.前几天我在上班摸鱼刷群的时候认识了一位阿里JAVA开发大佬,在华为工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一定的地 ...
- 程序员的自我救赎,GitHub 摸鱼神器一览
作者 | HelloGitHub-小鱼干 来源 | HelloGitHub 都知道 VSCode 有各种摸鱼小插件,边听云音乐.边在 IDE 斗地主,再来一个 NBA 直播,怎一个美滋滋了得.作为 V ...
- 这几个摸鱼神器,你怎么能不知道
大家好,我是一行 明天就是今年的第一个工作日了,进入新的一年摸鱼元年 最近看到很多人在分享微软刚刚推出的一款摸鱼神器--Loaf 怎么摸鱼呢? 因为loaf这是一个 WinUI 3 App,它只有一个 ...
- 放假前的最后一次带薪摸鱼
十一假期写的文章,竟然忘记发了.现在补上,还晚吗? 明天就是假期了,给小伙伴们聊聊我的一些心里话. 我在苏州的时候,国庆假期通常会选择回洛阳,坐上需要 15 个小时左右的绿皮火车,到了洛阳后再坐俩小时 ...
最新文章
- 涉及的一些操作的命令
- Using Preferences(Beginning Android)
- OpenCASCADE:绘制测试线束之基本命令
- 5、Hive的自定义UDF函数
- r语言 C4.5 剪枝是用什么算法_决策树,逻辑回归,PCA算法面经
- 谈一谈我对前端的学习路线及方法的一些心得
- 网游服务器端设计思考:心跳设计
- 无法解析 org.apache.commons:commons-pool2:2.4.2
- JSP的执行过程及生命周期
- Python开发第一步的环境搭建
- 腾讯云文档数据库MongoDB怎么样?腾讯云文档数据库MongoDB有什么优点?
- excel多表格整合去重与空格去除
- oracle的dmp文件导入mysql_Oracle 数据库导入导出 dmp文件
- debian linux手机安装,在 Android 系统上安装 Debian Linux 与 R
- AList上传文件提示Request failed with status code 413
- [OCA]认证考试内容
- 计算机软件知识产权保护主要保护哪些内容,计算机软件知识产权保护制度.pptx...
- 【PLC编程】简易梯形图
- Word在引用3个及以上参考文献的时候如何合并
- JSP中的源代码泄漏问题
热门文章
- 发布库到仓库 maven jcenter JitPack MD
- 联诚发(LCF)全彩LED显示屏,炫彩耀世界
- linux 查看用户操作日志,Linux下记录所有用户的登录和操作日志
- iphone ios HTTP Live Streaming
- 当RESET信号到来时,CPU有何特点
- LeetCode刷题笔记(算法思想 四)
- vue3.0 引入Ueditor(百度编辑器)
- 麦塔金,告诉大家图形用户界面是个人用户电脑操作系统不可分割的一部分,重新定义了操作系统...
- Scrapy 应用之爬取《盗墓笔记》
- 强烈推荐这款神器,一行命令将网页转PDF!