AE无线 spdy 网络改造项目性能数据review

该文章来自阿里巴巴技术协会(ATA

项目背景

AE无线用户面临的国际网络环境比国内还复杂,网络性能一直是一个瓶颈,为了给用户更快的体验,无线团队在双十一之后陆续做了许多性能优化,
其中针对网络性能的spdy网络改造也已经完成,从性能数据上看网络延迟减少30%到50%。

项目目标

从spdy协议多路并发、头部字典压缩、链路复用等优化来减少网络延迟,提升用户体验,分析性能数据做下一步的优化方向。

技术方案

标准spdy协议

AE无线 spdy 网络改造项目性能数据review
双通道

我们目前api一部分需要加密传输(带accesstoken的api),一部分不需要(产品列表等),为了最大化优化效果,所以我们决定采用spdy over https 和 http双通道的方案。

AE无线 spdy 网络改造项目性能数据review

降级策略

当spdy失败时,降级到HTTP协议,确保线上业务不受影响
1、全局配置降级 (服务端配置降级) 
2、spdy链接失败降级(没网络的异常、有spdy成功记录的链接失败) 
3、spdy不可用直接降级(链接失败记录超过5次且没有spdy成功记录)

预埋服务端配置逻辑

根据前轻后重的原则,预先在客户端埋下可配置的逻辑,包括:
(1)ssl 和non ssl 通道切换
(2)不可用直接降级的失败次数(无成功记录)
(3)直接降级失败次数(有成功记录)
(4)post 和get切换(get请求在spdy协议中比post请求少一帧数据,速度会快一些)

性能数据

网络耗时
AE无线 spdy 网络改造项目性能数据review
链接复用次数

平均复用次数为15.5次
AE无线 spdy 网络改造项目性能数据review

各api耗时情况,跑步进入1时代,实现无线1秒钟加载完毕的原则AE无线 spdy 网络改造项目性能数据review
spdy降级分析

从数据看大概1.5%的请求降级为http,大部分是网络问题(无网络、连接不上和超时)和spdy协议错误,后面稳定之后可以通过服务端配置提高不可用直接降级次数到10次,减少因为无网络导致后面直接降级的可能。
错误码3是除了中断异常、超时、协议错误之外的重试仍然失败。

AE无线 spdy 网络改造项目性能数据review

AE无线 spdy 网络改造项目性能数据review

李晔的实时监控数据,72、73为3.8.0和3.8.1支持spdy的版本
AE无线 spdy 网络改造项目性能数据review
AE无线 spdy 网络改造项目性能数据review

潘潘在GA上统计数据

3.7.3数据
AE无线 spdy 网络改造项目性能数据review

 

3.8.0数据
AE无线 spdy 网络改造项目性能数据review


后续优化方向

(1)限制一些非业务api的调用频率(如检查升级和获取配置信息、获取地址等)
(2)将一些特定api从post动态切换到get,提升速度
(3)增加链接保活时间,提高复用次数
(4)对一些业务数据做缓存
(5)对一些业务数据做预加载
(6)降低降级比例
(7)多IDC部署就近IP接入调度
(8)静态数据CDN加速