1. 程式人生 > >java專案問題排查

java專案問題排查

我之前遇到過好幾次程式打不開,程序存在;後來多次排查是因為程式碼的原因造成的;查詢資料太多造成了堵塞等;

我們可以從以下幾個方面去查:

1.程序是否存在:jps

2.匯出堆疊資訊:jmap jhat

3.定位執行緒堆疊,根據堆疊資訊我們可以定位到具體程式碼,在jvm調優中使用的比較多;

記下來我們詳細操作一下;

1),查詢對應程式的程序號pid

2)生成一個堆疊資訊:jmap -dump:format=b,file=heapdump.hprof Pid

生成檔案heapdump.hprof;

deadlock:死鎖;

Runnable:執行中;

Waiting on condition:等待資源

Waiting on monitor entry :等待獲取監視器;

Suspended:暫停

Object.wait()/TIMED_WAITING:物件等待中

Blocked:阻塞

Parked:停止

3)jstack -l PID >> jstack.txt 對jvm使用情況實時監控;

綜合兩個檔案我們可以找道到底是哪個檔案在我們專案中作怪;

其實針對於heapdump.hprof檔案有專門的一個分析軟體;可以看到那個程序所佔專案比例較大,就可以快速判斷;需要這個的可以留言郵箱;互相學習