Web專案效能問題常見定位方法梳理

2021-06-03 23:42:45 字數 670 閱讀 8190

定位方法:kill -3或者jstack先分析執行緒堆疊,找到當前block的執行緒。

常見於:外部介面呼叫無返回或者網路io阻塞無響應;死鎖;死迴圈;……。

定位方法(這一類問題普遍比較難定位):

(1)尋找hs_err_pid***.log這樣的jvm日誌

(2)使用jvm引數在jvm crash時寫入到dump檔案中

(3)catalina.out中尋找最後的日誌

(4)宕機前環境資料採集

常見於:jdk bug(數次遇到過jit引起的這一類問題);呼叫dll的問題;……

定位方法:kill -3或者jstack先分析執行緒堆疊,看執行緒大都停留在什麼操作上面,再細化分析。

常見於: 記憶體不足,可見到連續的full gc;網路擁塞;loadrunner等壓力客戶端瓶頸;資料庫瓶頸,可進一步分析db快照;……

定位方法(這一類問題最常見,定位的方法也最複雜):

首先觀察在壓力增大時,cpu使用率能否上去,如果不能上去,尋找其他瓶頸:網路/記憶體/磁碟/……;cpu

使用率上去了,觀察在無壓力時,是否有背景cpu使用(例如有後台定時任務執行緒消耗了大量cpu資源),如果沒有,那可以嘗試jprofiler等工具結合執行緒分析、業務分析,尋找熱點。

常見於:其他業務執行緒干擾;記憶體洩露;連線控制代碼用完;快取命中率低下……

Web專案效能問題常見定位方法梳理

定位方法 kill 3或者jstack先分析執行緒堆疊,找到當前block的執行緒。常見於 外部介面呼叫無返回或者網路io阻塞無響應 死鎖 死迴圈 定位方法 這一類問題普遍比較難定位 1 尋找hs err pid log這樣的jvm日誌 2 使用jvm引數在jvm crash時寫入到dump檔案中 ...

Web專案效能問題常見定位方法梳理

定位方法 kill 3或者jstack先分析執行緒堆疊,找到當前block的執行緒。常見於 外部介面呼叫無返回或者網路io阻塞無響應 死鎖 死迴圈 定位方法 這一類問題普遍比較難定位 1 尋找hs err pid log這樣的jvm日誌 2 使用jvm引數在jvm crash時寫入到dump檔案中 ...

如何定位專案效能問題

當遇到效能問題時,我們該怎麼辦?分治策略 1.首先我們應將整個專案細分成多個模組 2.測試每乙個模組的效能,找出每乙個模組的問題,分而治之 3.每乙個模組的效能都解決了,那麼整合到一起的專案效能問題舊解決了 如何gettickcount測試單個介面的呼叫時間?1.系統api gettickcount...