jvm常用命令行工具使用
一、jps ( jvm process status tool ) 虚拟机进程工具
参数 | 作用 |
---|---|
-q | 忽略主类的名称,只输出pid |
-m | 输出启动类main函数的参数 |
-l | 输出主类名,如果进程执行的为jar,则输出jar路径 |
-v | 输出具体进程启动时jvm参数 |
1.命名格式jps [options] pid
2.常用方式
jps -lv
: 输出启动类名与启动时jvm参数,可以方便的看到各个tomcat的自定义参数配置jps -lv |grep project_name
: 在上述基础上过滤出自己想要查看的项目的信息
二、jinfo ( configuration info for java ) 显示虚拟机配置信息
1.常用用法
jinfo pid
: 显示jvm系统属性与vm参数信息jinfo -flags pid
: 显示jvm vm参数信息,如最大最小堆,默认堆,垃圾收集器参数等jinfo -sysprops pid
: 显示jvm系统属性jinfo -flag
: 显示特定vm参数值,例如jinfo -flag MaxHeapSize pid
输出pid的最大堆内存
三、jstat ( jvm statistics monitoring tool) 收集虚拟机各方面运行数据
1、语法格式jstat [ option pid [interval[s|ms] [count]]]
说明: interval 表示循环时间间隔,默认单位为ms,可以直接使用s/ms指定单位,如 60ms/1s, count 表示输出几次 例:jstat -gc pid 1s 10
: 每1s查询一次gc情况,查询10次
2、option 详解(主要分三类:类装载、垃圾收集、运行期编译状况)
配置项 | 作用 |
---|---|
-class | 监视类装载、卸载数量、总空间以及类装载所耗费的时间 |
-gc | 监视Java堆,包括Eden区、两survivor区、老年代、永久代等的容量、已用空间、GC时间合计等 |
-gccapacity | 与-gc基本相同,但关注点为Java堆各个区域使用到的最大、最小空间 |
-gcutil | 与-gc基本相同,但关注点为Java堆各个区域已使用空间占总空间的百分比 |
-gccause | 与-gcutil功能相同,但会额外输出导致上一次GC产生的原因 |
-gcnew | 监控新生代GC情况 |
-gcnewcapacity | 与-gcnew基本相同,但关注最大,最小空间 |
-gold | 监控老年代GC情况 |
-goldcapacity | 与-gcold基本相同,但关注最大,最小空间 |
-compiler | 输出被JIT编译过的方法、耗时等信息 |
-printcomplilation | 输出已经被JIT编译的方法 |
… | … |
3、查看类装载卸载情况 jstat -class pid
属性 | 释义 |
---|---|
Loaded | 装载总数量 |
Bytes | 装载总大小 |
Unloaded | 卸载类的数量 |
Bytes | 卸载总大小 |
Time | 加载和卸载类总共的耗时 |
4、查看GC情况 jstat -gc pid
以下容量大小为kb
属性 | 释义 |
---|---|
S0C | 新生代survivor0容量 |
S1C | 新生代survivor1容量 |
S0U | 新生代survivor0已使用大小 |
S1U | 新生代survivor1已使用大小 |
EC | 新生代eden区容量 |
EU | 新生代eden区已使用大小 |
OC | 老年代容量 |
OU | 老年代已使用大小 |
MC | 元数据容量,即方法区容量 |
MU | 元数据已使用空间 |
CCSC | 压缩类空间大小 |
CCSU | 压缩类空间使用大小 |
YGC | 新生代gc次数(young gc) |
YGCT | 新生代gc时间(s) |
FGC | 老生代gc次数(full gc) |
GCT | 总的gc时间,包括young gc和full gc |
5、查看GC情况,以百分比显示jstat -gcutil pid
6、查看新生代GC情况jstat -gcnew pid
属性 | 释义 |
---|---|
S0C | 新生代survivor0容量 |
S1C | 新生代survivor1容量 |
S0U | 新生代survivor0已使用大小 |
S1U | 新生代survivor1已使用大小 |
TT | 对象在新生代存活的次数 |
MTT | 对象在新生代存活的最大次数 |
DSS | 期望的幸存区大小 |
EC | eden区大小 |
EU | eden区已使用大小 |
YGC | young gc次数 |
YGCT | young gc 时间 (秒) |
7、查看老年代GC情况jstat -gcold pid
8、查看各空间容量jstat -gccapacity pid
属性 | 释义 |
---|---|
NGCMN | 新生代最小容量 |
NGCMX | 新生代最大容量 |
NGC | 当前新生代容量 |
S0C | survivor0大小 |
S1C | survivor0大小 |
EC | EDEN区大小 |
OGCMN | 老年代最小容量 |
OGCMX | 老年代最大容量 |
OGC | 当前老年代大小 |
MCMN | 元数据最小容量 |
MCMX | 元数据最大容量 |
CCSMN | 最小压缩类空间大小 |
CCSMX | 最大压缩类空间大小 |
CCSC | 当前压缩类空间大小) |
9、查看编译情况jstat -compiler pid
四、jmap ( memory map for java ) 虚拟机堆快照工具
1、常用用法
jmap -heap pid
查看当前jvm heapdump与垃圾收集器的使用情况 。该命令输出内容解读可以参考链接:jmap heap输出各项参数解释jmap -dump:format=b,file=/temp/filename.hprof pid
转储堆快照,生成hprof文件到指定路径jmap -histo pid
列出当前heap中对象状况,附字节码与java对象映射表
参考:
https://my.oschina.net/u/3286119/blog/1927805
还没有评论,来说两句吧...