前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java程序CPU占用过高(100%)解决思路和解决方案

java程序CPU占用过高(100%)解决思路和解决方案

作者头像
小土豆Yuki
发布2023-10-25 18:53:31
9240
发布2023-10-25 18:53:31
举报
文章被收录于专栏:洁癖是一只狗洁癖是一只狗

找到占用CPU最高的进程

代码语言:javascript
复制
top  //查询进程 

找到进程对应线程

代码语言:javascript
复制
top -Hp  14327 //pid(进程)

打印堆栈信息

代码语言:javascript
复制
printf '%x\n' 14328 //获取线程的16进制
代码语言:javascript
复制
jstack 14327(进程号,不是线程id) | grep  37f8  //堆栈线程是16进制,直接过滤需要的线程

直接定位到代码所在的类,以及行号,再去分析代码

常用排查问题命令

查看内存结构,如新生代,老年代,持久代等

代码语言:javascript
复制
jmap -heap 14327

导出java堆的快照,可以用Jconsole等工具分析的日志

代码语言:javascript
复制
jmap -dump:format=b,file=./heap.hprof  14327 

资源和性能进行实时命令行监控,堆大小和垃圾回收

代码语言:javascript
复制
jstat -gcutil 14327 10000 3  每个10000毫秒打印一次,打印3次 堆大小情况,垃圾回收

环境变量和虚拟机参数

代码语言:javascript
复制
jinfo 14327  

其他命令

  • jps,用于查找java进程,通常使用ps命令代替
  • jhat,用于分析内存堆的快照文件
  • javah,生产java类中本地方法的C头文件,一般用于开发JNI库
  • jdb,远程调式,用于线上定位问题
  • 图形界面工具常用于Jconsole,JMAT,JProfiler,JvisualVM
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洁癖是一只狗 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档