线上问题处理

2022/03/07 Others 共 381 字,约 2 分钟

线上问题处理

部署时,一些commit 增加了堆一些util的新引用。

在单测、集成测试, api接口测试,测试环境中功能回归都没有发现问题。

部署线上小流量时开始触发延迟升高的报警。

第一步先止损: 紧急回滚。

定位:

  • 这种并发高的情况下才会出问题,log里没有异常信息,看了监控报警 cpu & mem 利用率并没有大的异常。
  • 初步定位: 是并发高了引起一些锁竞争或者io阻塞。
  • 定位到是某个commit中引第三方的一个util包,里面打印log使用的同步io,非异步io。
  • 后来在测试环境中压测了下之前部署的包,通过pprof等性能分析工具也二次确认了io阻塞的异常情况。

复现

  • 本地go benchmark并发调用也可以复现这个问题。

优化

  • code review加强对第三方包的使用,确保是线上验证过的或者压测过的。代码规范里增加禁止同步io。

  • 增加压测自动化环节,重要接口测试环境自动压测。

Search

    Table of Contents