问题背景:

上线后延时抖动很频繁,正常延时为10ms左右,抖动时延达到300ms以上,严重影响了该业务的性能

电脑网络抖动监控能看到吗_电脑网络抖动监控能看到吗

问题结论:tcp传输报文段延时异常,传输内容越大,受网络影响越大

  1. index模块延时正常,controller模块延时异常
    该服务的这个接口业务逻辑比较简单,即在controller模块用AiHttpClient访问index服务,做处理然后返回结果。经过日志发现,在经过http调用过后,接收时延时出现异常
  2. 排除wsClient的原因
    因为AiHttpClient是对wsClient做了封装,加入负载均衡等功能。我们怀疑是wsClient的原因,尝试用apache httpclient替换wsclient。灰度测试后,不仅平均延时上涨,而且抖动也没有减少,效果不理想。
  3. 用wireshark抓包分析,部分报文段超时
    a. 超时重传

b. 报文段延时过高

电脑网络抖动监控能看到吗_HTTP调用_02


电脑网络抖动监控能看到吗_HTTP调用_03

  1. 传输内容越大,报文段数量多,受网络影响越大

解决方案:

  • index增加服务端http传输内容压缩机制,以降低报文段的数量,增加传输效率,降低网络质量的影响
    [] inde服务增加压缩机制,上线灰度本周一 10:30
    [] 全量C3观察上线, 昨天 17:30
    [] 全量上线, 今天 15:00
  • controller修改配置play.ws.compressionEnabled = true,使wsClient支持压缩
    [] 灰度C3上线,昨天 17:30
    [] 全量上线 , 今天 10:00

最新状态:

  • 增加压缩传输内容机制,上线后灰度情况
    上线后发现传输内容从112320 bytes压缩到了26768 bytes,报文段数量从10个减少到3个,经过一个早晚高峰的观察,灰度机器抖动情况已基本消失