记一次线上环境tcp链接爆满导致服务响应慢的问题
事件还原:
- 20200407凌晨接到运维人员电话,说app启动充电响应很慢,无法正常的开启充电;
- 20200407凌晨,跟踪日志排查服务负载情况,但是过了一段时间自动恢复;
- 20200408,要求服务器运维人员提供服务器的负载情况,没有提供;
- 20200409凌晨,同样的时间出现服务响应时间过长的问题;
- 20200410 要求服务器运维人员提供服务器的负载情况,根据负载日志反应,在23:00-0:30时段内有大量的tcp链接,未释放;
- 20200410 23:30,跟踪服务器的运行情况,发现在此时段有大量的cmd9请求通过tcp,据此我发现问题,cmd9本应该通过redis获取数据,不会通过tcp获取相应数据的,检查配置文件,得出结果,callFromRedis=false。由于上次支持api升级设置的参数,后面没有及时更改回来导致的。
问题总结
- 如果可以发现实时问题,通过
jstack -l 9934 >> 9934.txt
获取jvm堆栈信息,这里面可以很清楚反馈服务器运行是的情况; - 在批量更新服务器配置时要做到细心,不能有遗漏;
- 多沟通并且冷静思考,遇到问题要冷静查找问题,不可急躁,否则一头乱麻,毫无思绪;