面試官:線上服務(wù)不可用,怎么排查?
閱讀本文大概需要 2.8 分鐘。
來(lái)自:https://urlify.cn/Q3Ar6z

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



5、代碼改進(jìn)

6、本文總結(jié)
查看日志 查看CPU情況 查看TCP情況 查看java線程,jstack 查看java堆,jmap 通過(guò)MAT分析堆文件,尋找無(wú)法被回收的對(duì)象
推薦閱讀:
一行命令堆出你的新垣結(jié)衣(已開(kāi)源),有點(diǎn)牛!
最牛逼 Java 日志框架 — Log4j2,性能無(wú)敵,橫掃對(duì)手.....
最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。
朕已閱?
評(píng)論
圖片
表情


