JVM性能调优监控工具总结
JDK本身提供了很多方便的JVM性能調優監控工具,有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具.
?
1.jps(Java Virtual Machine Process Status Tool)
最常用的就是 jps -mlvV
jps主要用來輸出JVM中運行的進程狀態信息。語法格式如下:
jps [options] [hostid]
如果不指定hostid就默認為當前主機或服務器。
命令行參數選項說明如下:
-q 不輸出類名、Jar名和傳入main方法的參數
-m 輸出傳入main方法的參數
-l 輸出main類或Jar的全限名
-v 輸出傳入JVM的參數
?
2.jstack
最常用的用法有兩種:
jstack 1234
jstack -m 1234 #native+java棧
?
jstack主要用來查看某個Java進程內的線程堆棧信息。語法格式如下:
jstack [option] pid
jstack [option] executable core
jstack [option] [server-id@]remote-hostname-or-ip
命令行參數選項說明如下:
-l long listings,會打印出額外的鎖信息,在發生死鎖時可以用jstack -l pid來觀察鎖持有情況
-m mixed mode,不僅會輸出Java堆棧信息,還會輸出C/C++堆棧信息(比如Native方法)
jstack可以定位到線程堆棧,根據堆棧信息我們可以定位到具體代碼,所以它在JVM性能調優中使用得非常多。
?
3.jinfo
最常用用法:jinfo -flags 1234
可以輸出并修改運行時的java 進程的opts。用處比較簡單,就是能輸出并修改運行時的java進程的運行參數。用法是jinfo -opt pid 如:查看1234的MaxPerm大小可以用 jinfo -flag MaxPermSize 1234
?
4.jmap(Memory Map)和jhat(Java Heap Analysis Tool)
最常用用法:
a.查看堆的情況:jmap -heap 1234
b.dump:jmap -dump:live,format=b,file=/home/admin/logs/heap.bin 1234
或者:jmap -dump:format=b,file=/home/admin/logs/heap.bin 1234
c.查看堆被誰占用了:jmap -histo 1234 | head -10
再結合btrace的分析
?
jmap用來查看堆內存使用狀況,一般結合jhat使用。
jmap語法格式如下:
jmap [option] pid
jmap [option] executable core
jmap [option] [server-id@]remote-hostname-or-ip
使用jmap -heap pid查看進程堆內存使用情況,包括使用的GC算法、堆配置參數和各代中堆內存使用情況。
使用jmap -histo[:live] pid查看堆內存中的對象數目、大小統計直方圖,如果帶上live則只統計活對象
其中class name是對象類型,說明如下:
B byte
C char
D double
F float
I int
J long
Z boolean
[ 數組,如[I表示int[]
[L+類名 其他對象)
還有一個很常用的情況是:用jmap把進程內存使用情況dump到文件中,再用jhat分析查看。jmap進行dump命令格式如下:
jmap -dump:format=b,file=dumpFileName pid。注意如果Dump文件太大,可能需要加上-J-Xmx512m這種參數指定最大堆內存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在瀏覽器中輸入主機地址:9998查看了
?
5.jstat
jstat參數很多,最常用的是 jstat -gcutil 1234 1000
先看JVM堆內存布局:
堆內存 = 年輕代 + 年老代 + 永久代
年輕代 = Eden區 + 兩個Survivor區(From和To)
現在來解釋各列含義:
S0C、S1C、S0U、S1U:Survivor 0/1區容量(Capacity)和使用量(Used)
EC、EU:Eden區容量和使用量
OC、OU:年老代容量和使用量
PC、PU:永久代容量和使用量
YGC、YGT:年輕代GC次數和GC耗時
FGC、FGCT:Full GC次數和Full GC耗時
GCT:GC總耗時
轉載于:https://www.cnblogs.com/john8169/p/9780542.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的JVM性能调优监控工具总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server 定时备份数据库
- 下一篇: GT各项参数