"服務不可用"怎么排查?講了100遍還是記不住?
閱讀本文大概需要 2.4 分鐘。
來自:https://urlify.cn/Q3Ar6z

1、排查思路
系統(tǒng)本身代碼問題 內(nèi)部下游系統(tǒng)的問題導致的雪崩效應 上游系統(tǒng)調(diào)用量突增 http請求第三方的問題 機器本身的問題
2、開始排查
查看日志,沒有發(fā)現(xiàn)集中的錯誤日志,初步排除代碼邏輯處理錯誤。 首先聯(lián)系了內(nèi)部下游系統(tǒng)觀察了他們的監(jiān)控,發(fā)現(xiàn)一起正常。可以排除下游系統(tǒng)故障對我們的影響。 查看provider接口的調(diào)用量,對比7天沒有突增,排除業(yè)務方調(diào)用量的問題。 查看tcp監(jiān)控,TCP狀態(tài)正常,可以排除是http請求第三方超時帶來的問題。 查看機器監(jiān)控,6臺機器cpu都在上升,每個機器情況一樣。排除機器故障問題。即通過上述方法沒有直接定位到問題。
3、解決方案

top -Hp 384
4430?4431?4432?4433?線程分別占用了約40%的cpu114e?114f?1150?1151sudo -u tomcat jstack -l 384>/1.txt
sudo -u tomcat jmap -dump:live,format=b,file=/dump201612271310.dat 384http://www.eclipse.org/mat/

BouncyCastleProvider對象持有過多。即我們代碼中對該對象的處理方式是錯誤的,定位到問題。4、代碼分析



5、代碼改進

6、本文總結(jié)
查看日志 查看CPU情況 查看TCP情況 查看java線程,jstack 查看java堆,jmap 通過MAT分析堆文件,尋找無法被回收的對象
推薦閱讀:
微信掃描二維碼,關注我的公眾號
朕已閱?
評論
圖片
表情


