JVM性能調優監控工具jps、jstack、jmap、jhat、jstat使用詳解

Jmap是一個能夠輸出全部內存中對象的工具,甚至能夠將VM 中的heap,以二進制輸出成文本。打印出某個java進程(使用pid)內存內的,全部‘對象’的狀況(如:產生那些對象,及其數量)。java

使用方法 jmap -histo pid。若是使用SHELL ,可採用jmap -histo pid>a.log日誌將其保存到文件中,在一段時間後,使用文本對比工具,能夠對比出GC回收了哪些對象。jmap -dump:format=b,file=outfile 3024 能夠將3024進程的內存heap輸出出來到outfile文件裏,再配合MAT(內存分析工具)。shell

64位機上使用須要使用以下方式:apache

jmap -J-d64 -heap pidubuntu

二、命令格式服務器

l  jmap [ option ] pidjvm

l  jmap [ option ] executable core工具

l  jmap [ option ] [server-id@]remote-hostname-or-IPspa

三、參數說明命令行

1)、options: debug

l  executable :產生core dump的java可執行程序;

l  core 將被打印信息的core dump文件;

l  remote-hostname-or-IP 遠程debug服務的主機名或ip;

l  server-id 惟一id,假如一臺主機上多個遠程debug服務;

2)、基本參數:

Ø  -dump:[live,]format=b,file=<filename> 使用hprof二進制形式,輸出jvm的heap內容到文件=. live子選項是可選的,假如指定live選項,那麼只輸出活的對象到文件. 

$jmap–dump:live,format=b,file=aaa.bin 3772

---------------------------------------------------------------------------------------------------------------

 jps主要用來輸出JVM中運行的進程狀態信息。語法格式以下:

jps [options] [hostid]

  若是不指定hostid就默認爲當前主機或服務器。

    命令行參數選項說明以下:

-q 不輸出類名、Jar名和傳入main方法的參數
-m 輸出傳入main方法的參數
-l 輸出main類或Jar的全限名
-v 輸出傳入JVM的參數

好比下面:

root@ubuntu:/# jps -m -l
2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml
29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat
3149 org.apache.catalina.startup.Bootstrap start
30972 sun.tools.jps.Jps -m -l 8247 org.apache.catalina.startup.Bootstrap start 25687 com.sun.tools.hat.Main -port 9999 dump.dat 21711 mrf-center.jar
相關文章
相關標籤/搜索