生产环境中遇到的偶发问题如何定位?
来源:1-4 Go 程序是怎么跑起来的
Jceee2号机
2021-05-25 16:32:21
现象:服务正常接口的执行时间是5ms内,偶尔出现一些执行超3秒的请求(重试是5ms内)。
下游timeout是3秒,直接504了,也看不出实际用了几秒。
出现概率:0.008% 超时:5100/64800000
sqlDB.SetMaxIdleConns(100)
sqlDB.SetMaxOpenConns(100)
sqlDB.SetConnMaxLifetime(time.Hour)
cpu/内存/负载 正常
数据库慢无查询,负载正常
问题一般如何定位?用什么工具定位
mysql连接池问题?
goroutine的调度有关?qps250左右,应该还不到go的单机瓶径
网络波动?
1回答
Xargin
2021-05-25
这种偶发问题感觉像是网络问题,生产环境有没有 tcp retrans 的监控呢?
之前 grab 的一个兄弟是用持续地抓包来排查的,他们碰到的丢包导致 tcp 队头阻塞,进一步导致的偶发延迟问题。
如果是偶发的 CPU/内存/goroutine 飚升,那是另外一套定位方法
相似问题