jps、jstack、jmap等命令

2018-10-17  本文已影响0人  有章

jps
查看jvm中进程运行状态信息
jps [option] [pid]
option选项:
-q 不输出类名、jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或jar的全限名
-v 输出传入jvm的参数

jstack
主要用来查看某个java进程内线程堆栈信息
jstack -l pid 会打印出额外的锁信息,发生死锁时使用

jmap
用来查看堆内存使用情况,一般结合jhat使用
jmap [option] pid
option选项:
permstat: 打印进程的类加载器和类加载器的持久带对象信息,输出:类加载器名称、对象是否存活、对象地址、父亲加载器、已加载类大小等信息
heap: 查看进程堆内存使用情况,包括使用的gc算法、堆配置参数和各代中堆内存使用情况
命令:jmap -heap pid
histo[:live]:查看堆内存中对象树、大小统计直方图,如果带上live则只统计活对象,
命令:jmap -histo:live pid
dump内存文件:
命令:jmap -dump:format=b,file=dumpFileName pid

jmap+jhat配合查看内存dump文件:

#: jmap -dump:format=b,file=/tmp/dump.dat 21711
#: jhat -port 9998 /tmp/dump.dat
如果dump文件太大,需要指定最大堆内存,即:
#: jhat -J-Xmx512m -port 9998 /tmp/dump.dat
然后就可以在浏览器中查看了,即:
192.168.3.161:9998  (192.168.3.162为主机地址)

jstat命令:

jstat [generalOption | outputOptions vmid [interval[s| ms] [count]]]
jstat -gc 21711 250 4
250:采样间隔 250ms
4:  采样次数
上一篇下一篇

猜你喜欢

热点阅读