问题
今天早上用户反馈网站变得很慢,近期并没有任何程序更新或者配置改动,看样子要好好查一查
抓包
首先发现日志上报请求超时,但是该请求是异步发送且只是上报接口,不涉及前端业务,故没有深入追查。大致看了下其他接口的耗时,发现校验token接口和业务接口耗时比平时要长,这个情况之前也已经出现过几次,基本都是后台的问题,所以想当然也认为情况跟之前差不多。于是,去机房查看后台日志
查日志
查看日志后发现后台接口正常,说明问题不在后台。那么肯定是前端到后台之间的链路那个环节出了问题,最大可能是网络问题或者是云平台的问题,想到这里,我不禁倒吸一口凉气,之前也遇到过这种问题,因为涉及到别的团队,问题排查进展缓慢且巨耗时间。不过转念一想,如果真是这样,其他系统也应该出现异常了,现在看来只有我们系统有问题,还是先排查掉自己的问题再说。
再抓包
于是继续在机房抓包分析。Chrome浏览器有详细统计接口耗时分布,发现校验token的接口和业务接口在stalled阶段耗时占大头,这跟之前的耗时分布不一样,线索应该在这里。
查资料
上网查了下stalled时间段的含义:Time the request spent waiting before it could be sent 看起来像是阻塞了。继续看了几篇博文,出现的原因有以下几个:
- 网络或者服务端问题导致TCP重连,涉及三次握手。这个可以排除,就没细看,估计是timeout之类的问题</