java專案問題排查

2021-08-21 05:46:50 字數 679 閱讀 5401

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

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

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使用情況實時監控;

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

專案full gc 排查

物件直接放入老年代條件 一般情況是四種,但是尤其以第一種 最多 1.新生代物件每經歷依次minor gc,年齡會加一,當達到年齡閥值會直接進入老年代。閥值大小一般為15 2.survivor空間中年齡所有物件大小的總和大於survivor空間的一半,年齡大於或等於該年齡的物件就可以直接進入老年代,而...

flip close Oops問題排查

1 問題描述 oops 1 cpu 0 0 00000000 00000001 64206e6f 838ceae0 4 838ceae0 83816140 00000001 00000007 8 0000080f 00000004 00000020 83934668 12 82fdb128 ffff...

404問題排查

當tomcat沒有日誌的時候,不一定訪問沒有到達tomcat 我們可以通過web.xml中的filter來攔截請求,把斷點打到第乙個filter smartfilterdispatcher 上,確定請求,然後檢視問題在 resource name add cust topic destination...