JVM问题排查常用命令总结

jps:输出JVM中运行的进程状态信息

jps [options] [hostid]
-v 输出传入JVM的参数

 jstack:查看线程堆栈信息,可以以此定位到具体代码

jstack [options] [pid]
-l 输出锁持有情况
-m 输出包含Java和Native方法的堆栈信息

利用jstack命令的一个排查案例:

1)top -c 找出所在程序pid
2)ps -Lfp [pid] / ps -mp [pid] -o THREAD, tid, time / top -Hp [pid] 找出最耗费CPU的线程id,记作thread_id
3)printf "%X" [thread_id] 转换为十六进制,记作x_num,备用
4)jstack [pid] |grep [x_num] 找出CPU消耗的主要代码,包括类和方法名称

jmap:导出堆内存,用jhat分析,打印进程的类加载器和类加载器加载的持久带对象信息等

jmap [options] pid
jmap -heap [pid] 查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和个贷中堆内存使用情况
jmap -histo[:live] [pid] 查看对内存中[存活]的对象数目、大小统计直方图

利用jmap做dump文件排查的案例:

jmap -dump:format=b,file=/path/dump.dat [pid] 导出dump文件
jhat -port 9900 /path/dump.dat 指定jhat分析结果访问路径,通过9900端口在浏览器查看

jstat:查看JVM堆区域的内存GC情况

jstat -gc [pid] [gap_time] [sample_count]

jstat结果的一些说明:

S0C/S0U S0区域的容量/使用量
S1C/S1U S1区域的容量/使用量
EC/EU Eden区域的容量/使用量

OC/OU 年老代区域的容量/使用量
PC/PU 永久代容量/使用量

YGC/YGCT 年轻代GC次数/GC耗时
FGC/FGCT FullGC次数/GC耗时
GCT GC总耗时

原创不易,转载请保留原链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

口手心行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值