前情
此前发布的系统最近客户反馈存在一些问题,主要是在查询数据时页面出现较长时间的卡顿,以及下载报表数据时出现报500错误信息,于是我们对此进行了各种情况分析以及借助性能分析工具验证,其中在导报表过程出现了OOM情况,并定位错误问题,最终顺利优化;其中核心是通过下文介绍的jmap命令以及jprofiler工具进行查看定位问题,可供大家参考。
JVM监控指令
如下指令是jdk自带支持的指令,只要本机安装了jdk环境,则均可执行成功!
jps:查看java进程信息
jconsole:图形化查看内存线程等信息(也间接包含了jstat和jstack命令显示的内容)
jstat:查看内存当前各指标状态信息
jstack:查看当前线程状态信息
jmap:查看内存信息或dump下内存详情(非常重要,开发中经常用到)
比如:二进制方式生成文件/opt/wkt/wkt1.hprof,PID=64421(HProf文件是Java等内存dump文件)
jmap -dump:format=b,file=/opt/wkt/wkt1.hprof 64421
JVM性能分析工具
visual VM
Jprofiler
Arthas
阿里的开源产品组件,官网:简介 | arthas