檢視和診斷JVM執行緒資訊
JVM自帶的工具jstack是用來檢視JVM執行緒資訊的利器,尤其在診斷CPU 100%的時候非常有用。
使用方法:
$JAVA_HOME/bin/jstack pid
例:/usr/tomcat55/jdk1.6.0_27/bin/jstack 24189
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.2-b06 mixed mode):
"Attach Listener" daemon prio=10 tid=0x0000000042835000 nid=0x7227 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"http-8080-Processor800" daemon prio=10 tid=0x0000000042cbd800 nid=0x70fc in Object.wait() [0x000000004ad51000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:657)
- locked <0x000000078ece70a8> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:662)
"http-8080-Processor799" daemon prio=10 tid=0x0000000042887000 nid=0x70fb in Object.wait() [0x0000000046408000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:657)
- locked <0x000000078ec2f1f8> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:662)
"http-8080-Processor796" daemon prio=10 tid=0x0000000042b3f000 nid=0x70f8 in Object.wait() [0x000000004c86c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:657)
- locked <0x000000078ed3c330> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:662)
...
jstack需要安裝JDK才能使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13885898/viewspace-2122504/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java執行緒診斷Java執行緒
- 檢視JVM執行時引數JVM
- 執行緒轉儲:命名你的執行緒和檢視系統(轉)執行緒
- 檢視執行緒所在模組執行緒
- 利用 Java dump 進行 JVM 故障診斷JavaJVM
- Oracle效能診斷檢視總結Oracle
- 多執行緒-執行緒控制之中斷執行緒執行緒
- Java執行緒:執行緒中斷Java執行緒
- UNIX如何檢視執行緒執行情況執行緒
- 詳解JAVA執行緒問題診斷工具Thread DumpJava執行緒thread
- linux 檢視 程式 執行緒數Linux執行緒
- windows下檢視oracle 執行緒 (session)WindowsOracle執行緒Session
- Java jvm 診斷調優JavaJVM
- [JVM] 應用診斷工具之Fastthread(線上診斷)JVMASTthread
- 深入理解JVM(③)執行緒與Java的執行緒JVM執行緒Java
- JVM中的執行緒行為JVM執行緒
- Java執行緒中斷與終止執行緒執行Java執行緒
- 檢視cpu是否開啟超執行緒執行緒
- Centos檢視程式的執行緒數量CentOS執行緒
- 理解JVM(六):執行緒安全和鎖優化JVM執行緒優化
- 如何檢視CPU核數和執行緒數?CPU的核心數、執行緒數的關係和區別執行緒
- 執行計劃-2:檢視更多的資訊
- 執行緒的中斷執行緒
- 中斷JAVA執行緒Java執行緒
- 執行緒和執行緒池執行緒
- linux檢視是否開啟超執行緒Linux執行緒
- 執行緒中斷以及執行緒中斷引發的那些問題執行緒
- Java併發(三)----建立執行緒的三種方式及檢視程式執行緒Java執行緒
- 【實驗】【PsList】使用PsList檢視Windows上Oracle的執行緒等資訊WindowsOracle執行緒
- 吃透 JVM 診斷方法與工具使用JVM
- Java多執行緒/併發08、中斷執行緒 interrupt()Java執行緒
- Java執行緒的中斷Java執行緒
- Java 可中斷執行緒Java執行緒
- Oracle診斷案例-Job任務停止執行Oracle
- 使用 jstat 命令檢視 JVM 的GC資訊JSJVMGC
- 執行緒的【生命週期】和【執行緒的同步】(多視窗售票例子)執行緒
- 多執行緒和多執行緒同步執行緒
- JVM 執行緒池發展趨勢JVM執行緒