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过高常见原因与解决相关推荐

  1. 义正词严的摸鱼 | 摸鱼系列

    一时兴起,想写一些自言自语的东西,原有的系列先暂停一周更新,我努力重构一下笔者的人设试图挽回持续下滑的阅读量. 摸鱼系列,主要写一些自言自语的,轻松的东西. 大家都上班摸鱼的经历,而且有各种各样好玩的 ...

  2. 闲鱼服务器临时维护,做好闲鱼运营必知技巧,这就是你不会做的一些原因

    闲鱼运营的办法其实不是很难,首先我们要掌握对一个平台的了解,以及闲鱼的动态还有规则.不要什么不知道就开始上去卖货然后过着时有时无的日子,这样是行不通的,闲鱼无需经过复杂的开店流程,即可达成包括一键转卖 ...

  3. 如何“阻止”程序员上班摸鱼?

    原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处. 本篇文章纯属虚构,并没有科学依据.为了避免有人找我寻仇,您在转载或者转发的时候,一定要保留此声明.否则我会有生命危险.你的 ...

  4. 上班在群里摸鱼,逮到一个字节10年测试开发,聊过之后羞愧难当...

    老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得某疼.前几天我在上班摸鱼刷群的时候认识了一位字节测试开发大佬,在字节工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一定的地位. ...

  5. 互联网摸鱼日报(2022-09-21)

    互联网摸鱼日报(2022-09-21) InfoQ 热门话题 深化数字化转型的关键途径:为场景找技术 Linux之父:不出意外,Rust将出现在Linux 6.1版本中 只擅长构建软件是不够的,我们必 ...

  6. 上班摸鱼在群里吹牛B,逮到一个华为10年老Java开发,聊过之后收益良多...

    老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼.前几天我在上班摸鱼刷群的时候认识了一位阿里JAVA开发大佬,在华为工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一定的地 ...

  7. 程序员的自我救赎,GitHub 摸鱼神器一览

    作者 | HelloGitHub-小鱼干 来源 | HelloGitHub 都知道 VSCode 有各种摸鱼小插件,边听云音乐.边在 IDE 斗地主,再来一个 NBA 直播,怎一个美滋滋了得.作为 V ...

  8. 这几个摸鱼神器,你怎么能不知道

    大家好,我是一行 明天就是今年的第一个工作日了,进入新的一年摸鱼元年 最近看到很多人在分享微软刚刚推出的一款摸鱼神器--Loaf 怎么摸鱼呢? 因为loaf这是一个 WinUI 3 App,它只有一个 ...

  9. 放假前的最后一次带薪摸鱼

    十一假期写的文章,竟然忘记发了.现在补上,还晚吗? 明天就是假期了,给小伙伴们聊聊我的一些心里话. 我在苏州的时候,国庆假期通常会选择回洛阳,坐上需要 15 个小时左右的绿皮火车,到了洛阳后再坐俩小时 ...

最新文章

  1. 涉及的一些操作的命令
  2. Using Preferences(Beginning Android)
  3. OpenCASCADE:绘制测试线束之基本命令
  4. 5、Hive的自定义UDF函数
  5. r语言 C4.5 剪枝是用什么算法_决策树,逻辑回归,PCA算法面经
  6. 谈一谈我对前端的学习路线及方法的一些心得
  7. 网游服务器端设计思考:心跳设计
  8. 无法解析 org.apache.commons:commons-pool2:2.4.2
  9. JSP的执行过程及生命周期
  10. Python开发第一步的环境搭建
  11. 腾讯云文档数据库MongoDB怎么样?腾讯云文档数据库MongoDB有什么优点?
  12. excel多表格整合去重与空格去除
  13. oracle的dmp文件导入mysql_Oracle 数据库导入导出 dmp文件
  14. debian linux手机安装,在 Android 系统上安装 Debian Linux 与 R
  15. AList上传文件提示Request failed with status code 413
  16. [OCA]认证考试内容
  17. 计算机软件知识产权保护主要保护哪些内容,计算机软件知识产权保护制度.pptx...
  18. 【PLC编程】简易梯形图
  19. Word在引用3个及以上参考文献的时候如何合并
  20. JSP中的源代码泄漏问题

热门文章

  1. 发布库到仓库 maven jcenter JitPack MD
  2. 联诚发(LCF)全彩LED显示屏,炫彩耀世界
  3. linux 查看用户操作日志,Linux下记录所有用户的登录和操作日志
  4. iphone ios HTTP Live Streaming
  5. 当RESET信号到来时,CPU有何特点
  6. LeetCode刷题笔记(算法思想 四)
  7. vue3.0 引入Ueditor(百度编辑器)
  8. 麦塔金,告诉大家图形用户界面是个人用户电脑操作系统不可分割的一部分,重新定义了操作系统...
  9. Scrapy 应用之爬取《盗墓笔记》
  10. 强烈推荐这款神器,一行命令将网页转PDF!