如何抓取Thread Dump小結(轉)

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   java   on   

當伺服器掛起,崩潰或者效能底下時,就需要抓取伺服器的線程堆棧(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\lib>java -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

 

 

http://www.blogjava.net/beansoft/archive/2011/12/30/367584.html

http://blog.sina.com.cn/s/blog_5f53615f0100zllb.html 

http://www.blogjava.net/jzone/articles/303979.html

http://blog.sina.com.cn/s/blog_6ed93640010114a4.html

 

如何抓取Thread Dump小結(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.