1.簡介基本命令功能
1、jps:查看本機java進程信息。
2、jstack:打印線程的棧信息,製作線程dump文件。
3、jmap:打印內存映射,製作堆dump文件
4、jstat:性能監控工具
5、jhat:內存分析工具
6、jconsole:簡易的可視化控制檯
7、jvisualvm:功能強大的控制檯
2.排查jvm內存泄漏過程
(1)查找要排查程序的進程ID
使用jps:jps -l
使用ps:ps aux | grep tomat
(2)初步查看虛擬機各種運行狀態信息
jstat -gcutil pid
結果解釋:新生代Eden區(E,表示Eden),兩個Survivor區(S0、S1,表示Survivor0、Survivor1),老年代(O,表示Old)。程序運行以來共發生Minor GC(YGC,表示Young GC)次數,總耗時,發生Full GC(FGC,表示Full GC)次數,Full GC總耗時,總的耗時(GCT,表示GC Time)。
(3)在線打印查看堆轉儲快照
jmap -histo:live pid
(4)將整個heap的信息dump寫入到一個文件,這裏演示生成的文件名heap001.jps
jmap -dump:live,format=b,file=heap001.jps pid
(5)分析dump出的文件,其中哪些代碼片段佔用內存比較大,一般就是這塊存在泄漏行爲。