面试官:线上服务不可用,怎么排查?
来自:https://urlify.cn/Q3Ar6z
1、排查思路
系统本身代码问题 内部下游系统的问题导致的雪崩效应 上游系统调用量突增 http请求第三方的问题 机器本身的问题
2、开始排查
查看日志,没有发现集中的错误日志,初步排除代码逻辑处理错误。 首先联系了内部下游系统观察了他们的监控,发现一起正常。可以排除下游系统故障对我们的影响。 查看provider接口的调用量,对比7天没有突增,排除业务方调用量的问题。 查看tcp监控,TCP状态正常,可以排除是http请求第三方超时带来的问题。 查看机器监控,6台机器cpu都在上升,每个机器情况一样。排除机器故障问题。即通过上述方法没有直接定位到问题。
3、解决方案
top -Hp 384
4430
4431
4432
4433
线程分别占用了约40%的cpu114e
114f
1150
1151
sudo -u tomcat jstack -l 384>/1.txt
sudo -u tomcat jmap -dump:live,format=b,file=/dump201612271310.dat 384
http://www.eclipse.org/mat/
BouncyCastleProvider
对象持有过多。即我们代码中对该对象的处理方式是错误的,定位到问题。4、代码分析
5、代码改进
6、本文总结
查看日志 查看CPU情况 查看TCP情况 查看java线程,jstack 查看java堆,jmap 通过MAT分析堆文件,寻找无法被回收的对象
长按进入小程序,进行打卡签到
(更多精彩值得期待……)
最近热文: 超全面!领取Java核心知识点.pdf 高质量程序员微信群,先到先得! 雷军做程序员时写的博客,很强大! 实战 | 把学校的网站搞了! LeetCode1-420题汇总,希望对你有点帮助! 2T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,软考,英语,等等。在公众号内回复「资源」,即可免费获取!回复「社群」,可以邀请你加入读者群! 点个在看你最好看
评论