生产环境中遇到的偶发问题如何定位?

生产环境中遇到的偶发问题如何定位?

现象:服务正常接口的执行时间是5ms内,偶尔出现一些执行超3秒的请求(重试是5ms内)。

下游timeout是3秒,直接504了,也看不出实际用了几秒。

出现概率:0.008% 超时:5100/64800000

  1. mysql连接池配置:
    sqlDB.SetMaxIdleConns(100)
    sqlDB.SetMaxOpenConns(100)
    sqlDB.SetConnMaxLifetime(time.Hour) 
  1. cpu/内存/负载 正常

  2. 数据库慢无查询,负载正常

问题一般如何定位?用什么工具定位

  1. mysql连接池问题?

  2. goroutine的调度有关?qps250左右,应该还不到go的单机瓶径

  3. 网络波动?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Xargin 2021-05-25 23:27:17

这种偶发问题感觉像是网络问题,生产环境有没有 tcp retrans 的监控呢?


之前 grab 的一个兄弟是用持续地抓包来排查的,他们碰到的丢包导致 tcp 队头阻塞,进一步导致的偶发延迟问题。


如果是偶发的 CPU/内存/goroutine 飚升,那是另外一套定位方法

  • 提问者 Jceee2号机 #1

    谢谢老师~我往这方面看看

    2021-05-26 11:23:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师