java获取当前tomcat线程pid_java 查看tomcat线程信息(示例代码)
查看線程信息
標簽:?線程?堆棧?信息?日志?tomcat?響應(yīng)
tomcat有時候會遇到所有操作都響應(yīng)很慢,或者一直沒有響應(yīng)的情況。如果這個時候通過日志無法看到錯誤信息。可能就不好分析問題出處。
這種情況可以看一下tomcat的線程信息,看看都是在進行什么操作。
參考網(wǎng)址https://www.cnblogs.com/shengulong/p/8513652.html
jstack 線程ID 可以查看某個線程的堆棧情況,特別對于hung掛死的線程,可以使用選項-F強制打印dump信息jstack -F pid
jstack定義: jstack是java虛擬機自帶的一種堆棧跟蹤工具。用于生成java虛擬機當前時刻的線程快照。線程快照是當前java虛擬機內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長時間停頓的原因,如線程間死鎖、死循環(huán)、請求外部資源導致的長時間等待等。
PS : 在實際運行中,往往一次 dump的信息,還不足以確認問題。建議產(chǎn)生三次 dump信息,如果每次 dump都指向同一個問題,我們才確定問題的典型性。也就是多進行幾次線程快照,觀察變化,查看問題所在。
參考命令?jstack pid >run.log? ?然后把run.log文件用附件“查看線程日志”工具打開。
主要觀察幾種狀態(tài)
死鎖,Deadlock(重點關(guān)注)
執(zhí)行中,Runnable
等待資源,Waiting on condition(重點關(guān)注)
等待獲取監(jiān)視器,Waiting on monitor entry(重點關(guān)注)
暫停,Suspended
對象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重點關(guān)注)
停止,Parked
然后查看每種狀態(tài)定位到哪段代碼信息。
查看Deadlock
查看monitors
找到Threads最對的代碼
日志文件中搜索一共出現(xiàn)多少次
總結(jié)
以上是生活随笔為你收集整理的java获取当前tomcat线程pid_java 查看tomcat线程信息(示例代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算器显示代码java_java编写的计
- 下一篇: java filereader blob