程序故障排查
系统异常出现缓慢
1.第一时间去监控数据库阻塞的链接 是不是慢sql导致长时间占用链接
https://www.cnblogs.com/LQBlog/p/12208891.html
2.如果是update相关,排查是否有异常的所长时间占用
https://www.cnblogs.com/LQBlog/p/10133758.html#autoid-6-0-0
4.查看链路追踪中的超时链接
5.查看jvm内存和线程信息,是否有大量run中的线程
6.如果数据库没有问题,可以dump线程堆栈信息查看正在执行的线程
https://www.cnblogs.com/LQBlog/p/15267950.html
建议:
建议使用中间件之类的都增加连接池活跃链接的监控,比如 redis es mq http连接池等,最好是再加上监控报警,比如活跃链接长时间在80%或者90% 则触发告警
案例1
用户反馈程序大规模出错,根据日志排查发现错误,发现是dubbo线程池满了
结合当时error日志发现此异常
1.数据库运维反馈是因为从库没续费导致
总结
1.出现异常先排查数据库是否正常 可以一下sql或者锁相关排查
https://www.cnblogs.com/LQBlog/p/12208891.html#autoid-1-0-0
2.数据库正常的情况下再通过dump整个线程 看running的是哪些线程大量阻塞了 根据堆栈分析原因