jvm調優的基本步驟


1、jps 查看應用進程
2、jinfo -flags pid 查看曾經賦值的一些參數
3、jstat
查看類裝載信息
jstat -class PID 1000 10 查看某個java進程的類裝載信息,每1000毫秒輸出一次,共輸出10次
查看垃圾收集信息
jstat -gc PID 1000 10
4、jstack
查看線程堆棧信息
jstack PID
5、jmap
生成堆快照
jmap -heap PID
dump出堆內存相關信息
jmap -dump:format=b,file=heap.hprof PID
jvm配置一下參數會自動生成dump文件,不用手動生成。
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof


常用分析工具:
1、jconsole
2、jvisualvm
3、arthas
arthas常用命令:
version:查看arthas版本號

help:查看命名幫助信息

cls:清空屏幕

session:查看當前會話信息

quit:退出arthas客戶端

dashboard:當前進程的實時數據面板

thread:當前JVM的線程堆棧信息

jvm:查看當前JVM的信息

sysprop:查看JVM的系統屬性

sc:查看JVM已經加載的類信息

dump:dump已經加載類的byte code到特定目錄

jad:反編譯指定已加載類的源碼

monitor:方法執行監控

watch:方法執行數據觀測

trace:方法內部調用路徑,並輸出方法路徑上的每個節點上耗時

stack:輸出當前方法被調用的調用路徑

......
4、MAT 對文件分析工具
5、gc日志分析
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:gc.log

gc日志分析工具:
在線:http://gceasy.io
離線:GCViewer

 

1、cpu占用率高如何排重

(1)top命令定位進程

(2)top -Hp PID 查看進程中各個線程cpu使用情況。 例:top -Hp 1893

(3)例如:在1893進程中4519線程cpu使用率較高

把4519這個線程轉為16進制   print   %x   4519      ——> 11a7

接下來通過jstack命令,查看棧信息

sudo  -u  admin  jstack  1893 | grep  -A  200 11a7

(3)定位代碼,分析問題。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM