命令 | 说明 |
---|---|
jps | 显示JAVA进程 |
jstat | JAVA虚拟机运行状态监控,运行时数据 |
jinfo | JAVA虚拟机配置信息,如启动参数等 |
jmap | 生成虚拟机堆内存转储快照(dump文件) |
jhat | 分析dump文件 |
jstack | 查看虚拟机的线程快照 |
1、jmap:Java内存印象工具
语法
jmap [option] pid
options参数
- -dump:生成堆转储快照。-dump:[live, ]format=b,file=<filename>,live子参数说明是否只dump出存活的对象
- -finalizerinfo:显示F-Queue中等待Finalizer线程执行finalize方法的对象
- -heap:显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等
- -histo:显示堆中对象统计信息,包括类、实例数量、合计容量
- -permstat:显示永久代的内存状态
- -F:当虚拟机对-dump没有响应时强制生成dump快照
应用
- jmap -dump:format=b,file=文件名.dump pid
生成dump文件,用visualvm分析 - jmap -heap pid
打印heap的概要信息,垃圾收集器,heap的配置及使用情况,用于判断目前heap的使用以及垃圾回收的情况 - jmap -histo pid
打印堆的对象统计情况。jmap -histo:live pid 打印存活的对象情况,jvm会先触发GC
2、jstat:虚拟机统计信息监视工具
语法
jstat [option vmid [interval[s|ms] [count]]]
options参数
- -class:监视类装载、卸载数量、总空间、以及类装载耗费时间
- -gc:监视Java堆状况,Eden区、两个Survivor区、老年代、永久代容量、已用空间、gc时间合计等信息
- -gccapacity:监视内容与-gc基本相同,主要关注Java堆各个区域使用到的最大、最小空间
- -gcutil:监视内容与-gc基本相同,主要关注已用空间占总空间的百分比
- -gccause:与-gcutil功能一样,会输出上一次gc发生的原因
- -gcnew:监视新生代gc状况
- -gcnewcapacity:与-gcnew基本相同,主要关注使用到的最大最小空间
- -gcold:监视老年代的gc状况
- -gcoldcapacity:与-gcold基本相同,主要关注使用到的最大最小空间
- -gcpermcapacity:输出永久代使用到的最大最小空间
- -compiler:输出JIT编译器编译过的方法、耗时等信息
- -printcompilation:输出已经被JIT编译的方法
应用
- 每s秒查询一次进程pid的垃圾收集情况,一共查询count次
jstat -gc [pid] [s] [count]
3、jinfo:Java配置信息工具
语法
jinfo [option] pid
options 参数
- -flag:查询参数的系统默认值
应用
- 查询CMSSInitiatingOccupancyFraction参数值
jinfo -flag CMSSInitiatingOccupancyFraction [pid]