java程序問題排查

首先查看nginx,看看請求是否過來了

然後查看日誌,通過關鍵信息鎖定錯誤日誌 分析原因。


一、
找到CPU利用率持續比較高的進程
top

找到CPU使用率較高的線程ID
top -H -p 8795或
ps p 8795 -L -o pcpu,pid,tid,time,tname,cmd

將獲取的線程號(十進制數)轉換成十六進制
printf “%x\n” 8795


查看進程8795中的信息

jstack -l 8795 > 8795.pid

二、
jmap -F -dump:live,file=jmap.hprof [PID] 導出內存dump文件然後用mat分析。


1:dump 文件裏,值得關注的線程狀態有
死鎖, Deadlock(重點關注) 
執行中,Runnable  
等待資源, Waiting on condition(重點關注) 
等待獲取監視器, Waiting on monitor entry(重點關注)
暫停,Suspended
對象等待中,Object.wait() 或 TIMED_WAITING
阻塞, Blocked(重點關注)  
停止,Parked

發佈了27 篇原創文章 · 獲贊 13 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章