本文目錄一覽:
java visualvm 堆dump怎麼分析
jmap是java自帶的工具
1. 查看整個JVM內存狀態
jmap -heap [pid]
2. 查看JVM堆中對象詳細佔用情況
jmap -histo [pid]
3. 導出整個JVM 中內存信息,可以利用其它工具打開dump文件分析,例如jdk自帶的visualvm工具
jmap -dump:file=文件名.dump [pid]
Java 中怎麼獲取一份線程 dump 文件
當服務器掛起,崩潰或者性能底下時,就需要抓取服務器的線程堆棧(Thread Dump)用於後續的分析.
Thread dump提供了當前活動的線程的快照. 它提供了JVM中所有Java線程的棧跟蹤信息
有很多方式可用於獲取Thread Dump, 一些是操作系統特定的命令.
操作系統命令獲取ThreadDump:
Windows:
1. 轉向服務器的標準輸出窗口並按下Control + Break組合鍵, 之後需要將線程堆棧複製到文件中
UNIX/ Linux
首先查找到服務器的進程號(process id), 然後獲取堆棧.
1. ps –ef | grep java
2. kill -3 pid
注意一定要謹慎, 一步不慎就可能讓服務器進程被殺死!
JVM 自帶的工具獲取線程堆棧:
JDK自帶命令行工具獲取PID並做ThreadDump:
1. jps
2.jstack pid
使用JVisualVM:
Threads 標籤頁 →ThreadDump按鈕
WebLogic 自帶的獲取 thread dump的工具:
1. webLogic.Admin 工具
a. 打開命令提示符, 通過運行DOMAIN_HOME/bin/setDomain.env設置相關類路徑
b. 執行下面的命令
java weblogic.Admin -url t3://localhost:7001 -username weblogic -password weblogic1 THREAD_DUMP
注意: Thread Dump 會打印到標準輸出, 如nohup日誌或者進程窗口.
2. 使用 Admin Console
a. 登錄 Admin Console , 點擊對應的服務器
b. 點擊Server à Monitoring àThreads
c. 點擊: Dump Thread Stack 按鈕
3. 使用WLST (WebLogic Scripting Tool)
connect(『weblogic』,’weblogic1』,』t3://localhost:7001』)
cd(『Servers』)
cd(『AdminServer』)
threadDump()
disconnect()
exit()
注意: 線程堆棧將會保存在運行wlst的當前目錄下.
4. 使用utils.ThreadDumper
用法:
C:\bea\wlserver_10.3\server\libjava -cp weblogic.jar utils.ThreadDumper
Broadcast Thread dumps disabled: must specify weblogic.debug.dumpThreadAddr and
weblogic.debug.dumpThreadPort
Exception in thread “main” java.lang.IllegalArgumentException: Port out of range
:-1
at java.net.DatagramPacket.setPort(Unknown Source)
at java.net.DatagramPacket.init(Unknown Source)
at java.net.DatagramPacket.init(Unknown Source)
at utils.ThreadDumper.sendDumpMsg(ThreadDumper.java:124)
at utils.ThreadDumper.main(ThreadDumper.java:145)
5. 如果服務器是作為Windows服務的方式運行, 請運行下列命令:
WL_HOME\bin\beasvc -dump -svcname:service-name
其它一些獲取Thread Dump的工具有jrcmd, jrmc(JRockit VM自帶) ,Samurai, JProfiler等, 還可通過JMX編程的方式獲取, 如JDK自帶示例代碼:
$JAVA_HOME\demo\management\FullThreadDump
如何查看javacore和heapdump文件
一。查看javacore文件
1.下載ThreadDumpAnalyser,graphviz,svgviewer
2.運行runall.bat javacore.txt,會產生三個文件dumps.xml,locktree1.svg,sidebyside.html
二。查看heapdump文件
1.從IBM網站下載ha433包,釋放,執行ha433.jar文件
2.在ha433窗口打開heapdump.phd,從中會顯示分析結果
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/306179.html