面試官:線上服務(wù)不可用,怎么排查?
來自:https://urlify.cn/Q3Ar6z

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



5、代碼改進(jìn)

6、本文總結(jié)
查看日志 查看CPU情況 查看TCP情況 查看java線程,jstack 查看java堆,jmap 通過MAT分析堆文件,尋找無法被回收的對(duì)象
長按進(jìn)入小程序,進(jìn)行打卡簽到
(更多精彩值得期待……)
最近熱文: 超全面!領(lǐng)取Java核心知識(shí)點(diǎn).pdf 高質(zhì)量程序員微信群,先到先得! 雷軍做程序員時(shí)寫的博客,很強(qiáng)大! 實(shí)戰(zhàn) | 把學(xué)校的網(wǎng)站搞了! LeetCode1-420題匯總,希望對(duì)你有點(diǎn)幫助! 2T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,軟考,英語,等等。在公眾號(hào)內(nèi)回復(fù)「資源」,即可免費(fèi)獲取!回復(fù)「社群」,可以邀請你加入讀者群! 點(diǎn)個(gè)在看你最好看
評(píng)論
圖片
表情




