开发者社区> 悟正> 正文

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

简介:
+关注继续查看

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

项目背景

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

项目目标

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

技术方案

标准spdy协议

双通道

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

降级策略

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

预埋服务端配置逻辑

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

性能数据

网络耗时
链接复用次数

平均复用次数为15.5次

各api耗时情况,跑步进入1时代,实现无线1秒钟加载完毕的原则
spdy降级分析

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



李晔的实时监控数据,72、73为3.8.0和3.8.1支持spdy的版本

潘潘在GA上统计数据

3.7.3数据

 

3.8.0数据


后续优化方向

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何抓取无线网络数据包
结论: Mac: airport, tcpdump Windows: Omnipeek Linux: tcpdump, airmon-ng 以太网里抓包很简单,各种软件一大把,什么Wireshark,Ethereal,Sniffer Pro 一抓一大把。不过如果是无线数据包,就要稍微麻烦一点了。网上找了一堆罗里吧嗦的文章,绕来绕去的,其实抓无线包一条命令就好了。 Windows
7182 0
关于React Native项目在android上UI性能调试实践
我们尽最大的努力来争取使UI组件的性能如丝般顺滑,但有的时候这根本不可能做到。要知道,Android有超过一万种不同型号的手机,而在框架底层进行软件渲染的时候是统一处理的,这意味着你没办法像iOS那样自由。不过有些时候,你还是可以想办法提升应用的性能(有的时候问题根本不是出在原生代码上!) 要想解决应用的性能问题,第一步就是搞明白在每个16毫秒的帧中,时间都去哪儿了。为此,我们会使用一个标准的
2706 0
SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析
本文源码:GitHub·点这里 || GitEE·点这里 一、ClickHouse简介 1、基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据。
1770 0
VB6.0 读取Excel文件并返还数据集RecordSet
读取Excel文件并返还数据集RecordSet 该方法适用于.xls,.xlsx类型的文件   读取Excel文件的Function: 1 '取得数据集 2 Function getRecordSetForExcels(sFilePath As String, _ 3 ...
1042 0
领课网络在线教育系统开源项目
领课在线教育开源系统是基于领课团队多年的在线教育开发和运营经验的产品
3220 0
UITableView性能优化-中级篇
老实说,UITableView性能优化 这个话题,最经常遇到的还是在面试中,常见的回答例如: Cell复用机制 Cell高度预先计算 缓存Cell高度 圆角切割 等等. . .
473 0
跨平台APP开发Flutter ListView 局部刷新数据、ListView点赞收藏
本文章实现的是 ListView 中 Item 局部数据刷新的效果,在这只是一个 Demo ,是一个实现思路,在应用开发的更多场景中如 资讯列表的点赞、收藏等等,诸多业务场景都可使用。
1011 0
+关注
2
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载