面试场景题-
服务稳定性
CPU
内存
IO/外部依赖
五步定位法:订单服务调用时间从200ms飙升至1.5s,如何排查?
cpu、内存没问题(都没超过70%),就可以确定是网络IO问题(数据库、RPC、三方调用-接口超时);然后看ELK日志&撸代码,就可以精准定位
1,连接池配置过低
2,SQL慢查询
3,业务线程池打满
4,第三方接口调用超时
步骤1:检查线程栈状态
将java程序的配置文件中的spring.datasource.druid.max-active改成50,重启应用程序后在重新测试即可
13.7.深入理解jstack日志,线程的状态_waiting on condition-CSDN博客
步骤2:分析依赖服务性能
看一下缓存命中率情况,有没有出现缓存雪崩的情况
步骤3:检查JVM垃圾回收情况
步骤4:网络和连接池诊断
排查是不是连接池过小,导致大量的线程等待获取连接
步骤5:日志排查
总结:
如果不是CPU,内存等资源瓶颈,导致的性能问题,那么就可能是
数据库,比如数据库行锁竞争
顺丰一面:订单服务调用时间从200ms飙升至1.5s,如何排查?Java面试前一定要看看!_哔哩哔哩_bilibili