JVM排查问题总结

目录

1. 目标

2. 准备工作

2.1. 配置​​​​​​​

2.2. 收集数据

3. 诊断工具

3.1. 分类

3.2. JMC

3.3. jcmd

3.4. JConsole

3.5. jdb

3.6. jinfo

3.7. jmap

3.8. jstat

3.9. jstack

3.10. 其他第三方诊断工具

4. 诊断问题

4.1. 判断memory leak

4.2. 定位引起leak的位置

4.3. OutOfMemoryError


1. 目标

总结排查JVM问题时可以使用的工具、策略、措施等。

2. 准备工作

2.1. 配置

2.1.1. oom时自动dump heap

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=存放dump的目录

2.1.2. 持续性的JFR

JFR Java flight recording java运行记录。当应用出问题时,JFR可以提供最近一段时间的dump data。JFR对很多问题都能提供帮助,如memory leaks to network errors, high CPU usage, thread blocks。

命令行

允许jmc操作

 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder

Start a profiling recording

-XX:StartFlightRecording=delay=20s,duration=60s,name=myrecording,filename=C:\TEMP\myrecording.jfr,settings=profile

Start a continuous recording

-XX:FlightRecorderOptions=defaultrecording=true,disk=true,repository=/tmp,maxage=6h,settings=default

jcmd指令

2.1.3. 输出GC日志

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime 
-XX:+PrintHeapAtGC -Xloggc:存储gclog的文件路径

 -verbosegc 输出内容少,无法看到各个代的回收情况

2.1.4. JMC JMX远程监控

应用启动时开启JMX

-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false

应用启动之后,独立开启JMX

jcmd pid ManagementAgent.start options

2.2. 收集数据

log

heap dump

JFR

thread stack

3. 诊断工具

3.1. 分类

事后诊断

用于应用crash之后诊断问题

悬停\死机进程诊断

用于死机或死锁应用的诊断

监控

监控正在运行的应用

3.2. JMC

Oracle Java Mission Control 是一个用于对 Java 应用程序进行管理、监视、概要分析和故障排除的可视化工具套件。
首次安装时,Java Mission Control 包括 JMX 控制台和 Java 飞行记录器。从 Mission Control

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值