QA同时跑自动化说一个接口超时,我一看竟然用了3s,太不可思议了。我做了如下排查。
- 通过traceid获取了执行的sql并看了下时间,耗时2.7s,通过亲自测试并用explain观察类似的语句发现不应该这么慢。
- 通过监控排查是否数据库负载异常,包括CPU、内存、读取IOPS,发现时间点对不上。
- 同时发现还有其他接口有类似的问题,同样是SQL执行时间过长,但是SQL本身都正常。
- 我自己通过postman反复测试一个没有缓存的接口观察时间,发现时间极其不稳定, 100ms~4s不等。
- 我通过grafana观察了下pod的CPU、内存发现也正常。
此时最可能得原因是每个pod配置的数据库的连接池数不够用导致的,我增加了数据库的连接数,最终问题解决。
网友评论