jvm性能监控工具整理
常见命令1:jstat 虚拟机统计监视工具
功能:
JVM Statistics Monitoring Tool,是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
用法:
jstat [options] pid [interval] [count]
参数解析
[options] : 操作参数,一般使用 -gcutil 查看gc情况
VMID : 本地虚拟机进程ID,即当前运行的java进程号
[interval] : 连续输出的时间间隔,单位为秒或者毫秒
[count] : 连续输出的次数,如果缺省打印无数次
对于操作参数具体有哪些: 可以通过命令:jstat -options 获取
jstat1.png常见命令2:jps 虚拟机进程查看工具
常见参数:
-q: 只输出LVMID
-v:虚拟机进程启动时的参数
-l:输出主类的全名,如果进程是jar包,输出jar的路径
image.png
-m:虚拟机启动时传递给主类main()函数的参数
image.png
关于jinfo
https://www.cnblogs.com/NetKillWill/archive/2017/10/28/jinfo.html
jinfo是jdk自带的命令,可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数。
关于jmap
主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。
jmap -heap pid
https://www.cnblogs.com/kongzhongqijing/articles/3621163.html
配合jmap的jhat命令
很详细:
https://www.cnblogs.com/baihuitestsoftware/articles/6406271.html
- 1 导出堆快照
- 2 解析堆快照
- 3 浏览器访问: http://localhost:7000
Heap Histogram: 堆内对象容量查看
OQL: oql语句查询,详情后续有人问更新。。。 是在堆内查询对象数据的sql语句 语法和sql差不多
但一般不推荐这种方式分析堆内存情况,原因:
- 耗费计算机资源相对大
- 分析功能简陋,费神
较为推荐:VisualVM、HeapAnalyzer等工具