jvm命令行工具(四)

3 篇文章 0 订阅
2 篇文章 0 订阅

一、jps  (Java Virtual Machine Process Status Tool)查看java进程

[root@javaxiaobang ~]# jps -l #输出jar包全名
4196 hystrixapp-0.0.1.jar
[root@javaxiaobang ~]# jps -v #启动时设置的JVM参数 
4196 jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx128m -XX:+UseConcMarkSweepGC 
[root@javaxiaobang ~]# jps -m #输出main方法需要的参数
4196 jar --server.port=5159

二、jstat (Java Virtual Machine statistics monitoring tool)查看内存信息

root@javaxiaobang ~]# jstat -options #jvm内存监控
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation 
[root@javaxiaobang ~]# jstat -class 4196 #加载的类信息,占用多少内存,卸载类数量
Loaded  Bytes  Unloaded  Bytes     Time
 12555 22024.1       73   108.8      55.34
[root@javaxiaobang ~]# jstat -compiler 4196 #运行时编译-jit编译器
Compiled Failed Invalid   Time   FailedType FailedMethod
   13688      1       0    69.20          1 sun/misc/URLClassPath getLoader
[root@javaxiaobang ~]# jstat -gc 4196 #jvm内存信息
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
4352.0 4352.0  0.0   121.9  34944.0   6063.2   87424.0    28200.9   67840.0 64532.4 8704.0 8077.0   3861   15.146   3      0.446   15.592
[root@javaxiaobang ~]# jstat -gcutil 4196 #jvm内存信息
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00   2.80  27.01  32.26  95.12  92.80   3861   15.146     3    0.446   15.592
[root@javaxiaobang ~]# jstat -gccapacity 4196 #jvm内存容量大小
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
 43648.0  43648.0  43648.0 4352.0 4352.0  34944.0    87424.0    87424.0    87424.0    87424.0      0.0 1107968.0  67840.0      0.0 1048576.0   8704.0   3861     3

1、jstat  -gc  进程id  (查看内存信息 )

S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

2、jstat -gccapacity 进程id   (jvm内存容量大小)      

NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数

 

三、jmap(Java Virtual Machine Memory Map) 虚拟机内存快照

[root@javaxiaobang ~]# jmap -heap 4196 #查看堆信息 
[root@javaxiaobang ~]# jmap -dump:format=b,file=a.dump 4196 #导出内存快照
Dumping heap to /root/a.dump ...
Heap dump file created

四、jcmd命令

[root@javaxiaobang ~]# jcmd #JDK7 update4中引入了jcmd工具,它是一个多功能工具,可以用它来导出堆,查看Java进程,导出线程信息,执行GC等。
3952 clientapp-0.0.1.jar
4196 hystriapp-0.0.1.jar 
[root@javaxiaobang ~]# jcmd 4196 VM.uptime #jvm内存启动多久
4196:
8174372.643 s
[root@javaxiaobang ~]# jcmd 4196 GC.class_histogram > class.txt  #拿到类的统计信息
[root@javaxiaobang ~]# jcmd 4196 Thread.print > thread.dump #查看线程信息
[root@javaxiaobang ~]# jcmd 4196 GC.heap_dump `pwd`/test.dump #导出内存快照和jmap功能一样
4196:
Heap dump file created
[root@javaxiaobang ~]# jcmd 4196 VM.system_properties #jvm配置信息 
[root@javaxiaobang ~]# jcmd 4196 GC.run #对jvm执行system.gc()
4196:
Command executed successfu

五、jstack命令

[root@javaxiaobang ~]# jstack -l 4196 >theadtest.dump  #导出线程信息
[root@javaxiaobang ~]#

六、jinfo命令

[root@javaxiaobang ~]# jinfo 4196 >jvminfo.txt #jvm参数和系统属性
[root@javaxiaobang ~]# jinfo -flag PrintGC 4196
-XX:-PrintGC
[root@javaxiaobang ~]# jinfo -flags 4196 #输出全部参数
[root@javaxiaobang ~]# jinfo -sysprops 4196 #输出系统属性

七、jhat命令 (启动一个服务查看导出的jvm内存信息)

[root@javaxiaobang ~]# jhat -port 8763 jvm_export.dump > jhat.log &
[2] 15764
[root@javaxiaobang ~]#

http://123.56.224.5:8763/   

http://123.56.224.5:8763/histo/

http://123.56.224.5:8763/oql/

备注:文中所有的4196是java进程id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值