天天看點

JVM監控指令

JDK本身提供了很多友善的JVM性能調優監控工具,除了內建式的VisualVM和jConsole,還有jps,jmap,jstat,jstack,jhat等小工具。

1. jps(Java Virtual Machine Process Status Tool)  

jps -m -l   列出JVM中運作的程序狀态資訊(這裡可以擷取某個程序的pid, 供後續指令使用)

2. jstat

jstat -gcutil pid 10s 3   對堆記憶體的使用情況、gc資訊等進行實時的指令行統計

3. jstack  

檢視某個Java程序内的線程堆棧資訊。

jstack可以定位到線程堆棧,根據堆棧資訊我們可以定位到具體代碼,是以它在JVM性能調優中使用得非常多。

使用方法參見:6. 熱點CPU

4. jmap

生成堆記憶體快照

jmap -heap pid  檢視程序堆記憶體資訊,了解即可

jmap -dump:format=b,file=xxx.hprof pid    把程序記憶體使用情況dump到檔案中。Dump檔案是程序的記憶體鏡像

jmap -dump:live,format=b,file=xxx.hprof pid   統計存活的對象資訊

dump出來的檔案可以用MAT、VisualVM等工具檢視,也可以用jhat檢視

5. jhat

檢視dump出來的檔案

jhat -port 9998 xxx.hprof

然後就可以在浏覽器中輸入主機位址:9998檢視了,比如:http://localhost:9998

不推薦,因為有的檔案很大,打開會很慢,看起來也費勁,推進用MAT分析

6. 熱點cpu   

cpu占用率持續的比較高

定位步驟:

jps -m -l                   列出正在運作的程序----這裡是否用top指令更好一些?top才能看出誰占用cpu最高                       

top -H -p pid           找出該程序内最耗費cpu的線程

printf "%x\n" tid      線程id轉化為16進制

上一篇: Jmeter監控JVM
下一篇: JVM監控工具