故障处理二则

今天解决的2个问题

1、总结:节点资源可能影响应用和rocketmq的通信

现象:

1、服务重启后一直连接不上rocketmq,提示与broker心跳保持失败;
2、在阿里云rocketmq上查看客户端,提示客户端离线;
3、该服务并无发版和其他资源异常,服务上的HTTP接口响应正常;
4、通过TCPDUMP抓包未发现明细传输层异常;

环境:
rocketmq 连接方式: tcp

解决方式:

通过将pod调度到不同的节点,解决此问题;将pod调度回问题节点,问题可复现。

总结:
因为节点的网络资源占用较高,可能会引起同节点上服务和rocketmq的心跳保持中断。

========================================================

2、总结:服务的资源上升,并不一定是服务自身的代码问题导致,也可能来自于外部请求的增高;

现象:

1、应用市场服务的POD CPU突然上升,居高不下;
2、通过对服务的横向扩容,依然无法解决此问题;
3、回退代码并没有解决此问题;
4、该服务提供的都是HTTP接口;
5、POD内的业务日志不全,记录信息没有参考价值;

分析:
1、通过POD完整监控分析,发现CPU上升时入站带宽同时上升,初步分析是外部请求增加导致的问题;
2、通过对接口请求总量环比、同比的对比分析,发现当天同时段请求量翻倍,由 2千万变成今天的4千万,锁定是请求激增导致;
3、通过对请求量和负载的计算,当单POD资源为5核时,每秒1万次请求会将服务CPU打爆;

总结

1、需要对核心接口进行防攻击保护,这种攻击可能来自内部也可能来自外部,限流和熔断策略需要加上;
2、需要增加业务监控,针对可能出现的业务问题进行提前扩容和预警,例如执行完某业务后必然会出现另一个业务的请求量增加;
3、需要对POD服务进行压力测试和性能压榨,提高资源利用率;
4、限流需要和资源情况进行结合,当达到服务支撑的最大阈值并且无法扩容,那么限流策略要自动触发,或者根据IP进行针对接口的限流进行服务保护;
5、高频请求接口或有崩溃风险的接口进行风险隔离,最大可能保护其他服务不受干扰;
6、关于服务压测,需要的不仅仅是压测的请求量和资源使用率的数据,还需要对内存快照进行抓取,以挖掘内存中潜在的问题。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值