【JVM】java内存分析

参考 https://www.cnblogs.com/wyb628/p/8566337.html

thread dump 主要记录JVM在某一时刻各个线程执行的情况,以栈的形式显示,是一个文本文件。通过对thread dump文件可以分析出程序的问题出现在什么地方,从而定位具体的代码然后进行修正。thread dump需要结合占用系统资源的线程id进行分析才有意义。

 

heap dump 主要记录了在某一时刻JVM堆中对象使用的情况,即某个时刻JVM堆的快照,是一个二进制文件,主要用于分析哪些对象占用了太对的堆空间,从而发现导致内存泄漏的对象。

 

1.动态显示进程及占用资源的排行

top -c 

​​

 

2.打印占用CPU最高进程中的线程

可以用 top -bn1 -H -p <pid> 命令

top -bn1 -H -p 279959

​​

​3.根据线程占用的cpu比例进行排序

PID用于进程,而TID用于线程

ps -mp <pid> -o THREAD,tid,time | sort -k2r

ps -mp 279959 -o THREAD,tid,time | sort -k2r

4.将线程id转成十六进制的值

printf "%x \n" <tid>

printf "%x \n" 279992

5.显示出错的堆栈信息

jstack -l <pid> | grep <thread-hex-id> -A 10

jstack -l 279959 | grep 445b8 -A 10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值