Java虚拟机知识点【工具】
2019-08-16 11:16:51来源:博客园 阅读 ()
Java虚拟机知识点【工具】
命令行工具
1. jps
JVM Process Status Tool,显示虚拟机进程。
用法:jps [-q] [-mlvV]
参数说明
- -q:打印进程号
- -l:打印启动类的全限定名
- -m:打印启动类的 main 方法入参
- -v:打印指定的虚拟机参数
- -V:打印类名
例子:jps
、jps -l
2、jstat
JVM statistics Monitoring,对Java虚拟机内存进行监控统计。
用法:jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
参数说明
- option:操作,常用的就是
gcutil
,统计垃圾回收情况。 - -t:显示时间戳列
- -h
:指定多少行显示标题 - -vmid:进程ID
- -interval:每行输出的时间间隔
- -count:指定输出行数
例子:jstat -gcutil -h2 -t 15754 100 5
,表示监控进程号15754的垃圾收集统计值,每隔100ms输出一行,总共输出5次,每输出2次需要重新输出标题。
[root@root ~]# jstat -gcutil -h2 -t 15754 100 5
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
11296830.0 0.00 100.00 21.80 25.80 98.41 96.33 113648 2500.825 0 0.000 2500.825
11296830.2 0.00 100.00 21.80 25.80 98.41 96.33 113648 2500.825 0 0.000 2500.825
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
11296830.3 0.00 100.00 21.80 25.80 98.41 96.33 113648 2500.825 0 0.000 2500.825
11296830.4 0.00 100.00 21.80 25.80 98.41 96.33 113648 2500.825 0 0.000 2500.825
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
11296830.5 0.00 100.00 21.80 25.80 98.41 96.33 113648 2500.825 0 0.000 2500.825
输出的指标说明
- S0:survivor 0 已用空间占比
- S1:survivor 1 已用空间占比
- E:Eden 区已用空间占比
- O:老年代已用空间占比
- M:元数据已用空间占比
- CCS:压缩类空间占比
- YGC:Mirror GC 次数
- YGCT:Mirror GC 消耗时间
- FGC:Full GC 次数
- FGCT:Full GC 消耗时间
- GCT:垃圾回收消耗总时间
3. jinfo
JVM Configuration info,可以实时查看和实时修改虚拟机参数。
用法:jinfo [option] <pid>
参数说明
option:操作
-flag
打印指定的VM参数的值
-flag [+|-]启用或禁用指定的VM参数
-flag= 修改VM参数
-flags 打印VM参数
-sysprops 打印Java系统配置pid:进程ID
例子:jinfo 15754
、jinfo -flags 15754
4. jmap
JVM Memory Map,用来生成堆栈dump文件。
用法:jmap [option] <pid>
参数说明
option:操作
heap:打印Java堆摘要
histo[:live]:打印java对象堆的直方图; 如果指定了“live”选项,则仅计算实时对象
dump:生成dump快照pid:进程ID
例子:jmap -heap 15754
、jmap -histo:live 15754
、jmap -dump:live,file=.\heap_dump.hprof 15754
5. jstack
用来生成Java虚拟机当前时刻的线程快照,方便定位线程长时间停顿的问题,比如死锁、死循环、长时间等待等。
用法:jstack -F [-m] [-l] <pid>
参数说明
- -F:强制打印堆栈
- -m:同时打印Java和本地方法的堆栈
- -l:打印关于锁的附件信息
- pid:进程ID
例子:jstack -l 15754
6. jhat
JVM Heap Analysis Tool,用来分析jmap生成的堆栈日志,生成HTML文件。一般会用可视化工具来分析堆栈日志,比如MAT。
7. jcmd
JDK建议使用 jcmd 替代 jstack、jinfo、jmap 等命令。
例子
- jcmd -l:列出所有Java虚拟机。
- jcmd 15754 help:列出该虚拟机支持的命令。
- jcmd 15754 PerfCounter.print:获取所有性能相关的数据。
- jcmd 15754 GC.class_histogram
可视化监控工具
常用的工具
- jconsole:JDK自带监控工具
- jvisualvm:JDK自带监控工具,比jconsole显示更多监控数据
- jmc:也是JDK自带监控工具,比jvisualvm显示更多监控数据
- MAT:Memory Analyzer Tool,Java虚拟机内存分析工具,能够快速的分析dump日志。
参考资料:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
原文链接:https://www.cnblogs.com/bigshark/p/11253590.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Kotlin学习快速入门(2)——条件 数组 循环 方法
下一篇:单元测试
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash