java 查看tomcat線程信息

查看線程信息php

標籤: 線程 堆棧 信息 日誌 tomcat 響應html

 

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

主要觀察幾種狀態對象

  1. 死鎖,Deadlock(重點關注) 
  2. 執行中,Runnable   
  3. 等待資源,Waiting on condition(重點關注) 
  4. 等待獲取監視器,Waiting on monitor entry(重點關注)
  5. 暫停,Suspended
  6. 對象等待中,Object.wait() 或 TIMED_WAITING
  7. 阻塞,Blocked(重點關注)  
  8. 中止,Parked

而後查看每種狀態定位到哪段代碼信息。

 

查看Deadlock

查看Deadlock

 

查看monitors

查看monitors

 

找到Threads最對的代碼

找到Threads最對的代碼


日誌文件中搜索一共出現多少次

日誌文件中搜索一共出現多少次
相關文章
相關標籤/搜索