查看線程信息php
tomcat有時候會遇到全部操做都響應很慢,或者一直沒有響應的狀況。若是這個時候經過日誌沒法看到錯誤信息。可能就很差分析問題出處。java
這種狀況能夠看一下tomcat的線程信息,看看都是在進行什麼操做。tomcat
參考網址https://www.cnblogs.com/shengulong/p/8513652.html工具
jstack 線程ID 能夠查看某個線程的堆棧狀況,特別對於hung掛死的線程,能夠使用選項-F強制打印dump信息jstack -F pidspa
jstack定義: jstack是java虛擬機自帶的一種堆棧跟蹤工具。用於生成java虛擬機當前時刻的線程快照。線程快照是當前java虛擬機內每一條線程正在執行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現長時間停頓的緣由,如線程間死鎖、死循環、請求外部資源致使的長時間等待等。線程
PS : 在實際運行中,每每一次 dump的信息,還不足以確認問題。建議產生三次 dump信息,若是每次 dump都指向同一個問題,咱們才肯定問題的典型性。也就是多進行幾回線程快照,觀察變化,查看問題所在。日誌
參考命令 jstack pid >run.log 而後把run.log文件用附件「查看線程日誌」工具打開。htm
主要觀察幾種狀態對象
而後查看每種狀態定位到哪段代碼信息。
查看Deadlock
查看monitors
找到Threads最對的代碼
日誌文件中搜索一共出現多少次