加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 安全 > 正文

有种速度让你望尘莫及

发布时间:2021-01-10 07:29:20 所属栏目:安全 来源:网络整理
导读:《有种速度让你望尘莫及》要点: 本文介绍了有种速度让你望尘莫及,希望对您有用。如果有疑问,可以联系我们。 作者介绍: 黄浩宇 现就职于腾讯社交网络运营部,负责SNG社交网络业务移动类产品的业务运维工作,如QQ、Qzone业务优化及开发. 此前任职于阿里巴巴,
副标题[/!--empirenews.page--]

《有种速度让你望尘莫及》要点:
本文介绍了有种速度让你望尘莫及,希望对您有用。如果有疑问,可以联系我们。

作者介绍:

黄浩宇

现就职于腾讯社交网络运营部,负责SNG社交网络业务移动类产品的业务运维工作,如QQ、Qzone业务优化及开发.
此前任职于阿里巴巴,负责天猫商城活动类业务的运维工作,如天猫双11,天猫周年庆等.

导语

移动互联网发展那么快,运维技术也要适应业务的变化啊,这次小编找了腾讯牛人介绍的手机QQ和手机Qzone的速度优化实践.

我们坚信不同垂直领域的运维分工会越来越不同,如何能在不同的业务形态上,利用运维技术和数据为业务带来更大的价值,将是我们下一步探索的重点方向.

1. 关于用户等待时间

对用户来说,最直观的感受就是APP的等待时间,所以我们首先要分析清楚APP到底在哪里让用户等待,耗时在哪里.

等待时间无非就以下三个:
· Server处理耗时
· 网络传输耗时
· 客户端数据处理/UI渲染耗时

QQ/Qzone等产品由于已经有多年的Server端优化,大部分数据都是直接读写nosql数据库,接口耗时基本都在30-120ms,优化Server实际的收益并不会很大.
下面主要介绍后两个方向上的优化实践.

2. 网络传输

首先我们需要统计数据在网络传输的耗时情况,才能知道优化网络传输有多少价值

2.1 网络传输耗时统计

网络耗时通过TCP协议的三次握手在服务端进行统计,优点是简单快速低成本,具体方案如下:

  1. 记录下第一次握手时服务端收到SYNC包的时间Time1
  2. 记录下第三次握手时服务端收到的ACK包时间Time2
  3. 两个时间之差即是网络往返耗时RT(Time2-Time1)(见图2.1)

图2.1 从服务端测网络延时

通过实际数据统计,在不跨网访问的情况下(信号正常):
· 4G耗时约30-100ms
· 3G耗时约 200-400ms

从速度结果上看,目前主流的3G/4G网速还是相当不错的,但是由于移动网络的复杂性,从QQ和空间的业务返回码监控上还是发现有不少问题:
· 跨网访问
· 跨地区访问
· 某些小运营商劫持等

下面分享下手机Qzone在接入组件的优化策略

2.2 手机Qzone WNS接入策略

简介:WNS,手机QQ空间APP到服务端通信框架,支持tcp、http协议

2.2.1使用私有协议直接IP长连接访问(图2.2)

优点:
· 减少DNS请求耗时
· 避免DNS域名劫持
· 单个连接并发多个数据请求减少连接数的开销(相对http)
· 私服协议加密安全;

缺点:由于不走域名,首次连接需要额外的策略来找到合适的接入点,并且需要有重定向能力

图2.2 私有协议直接IP长连接

2.2.2 首次连接策略

世界上最遥远的距离就是你在联通,而我在电信.在复杂的移动网络环境下,我们需要优化网络的接入策略避免跨网/跨地区访问.

使用移动网络时我们先识别用户的运营商,同时起4个连接,多个接入IP+多个端口+2种协议,再同时使用2种协议和多个端口是为了避免有些本地运营商的限制,使用第一个连接上的连接(见图2.3)

图2.3 首次并发尝试连接

使用WIFI的用户首次连接会优先使用域名尝试连接.

当上面策略都连不上时客户端会运行打分策略,使用备份IP列表连上一个速度最快的接入.

腾讯拥有国内大量的CDN节点,即使是偏远地区也可以通过CDN节点接入做为代理!

优点:多种首次连接策略能有效的保证用户最大可能的先连上服务器,这在复杂的移动网络中特别重要!

缺点:首次连接有额外开销;连接上不一定是最优的接入点;使用CDN节点做为代理接入成本较高

2.2.3 最优接入&重定向

连接上之后服务端通过GSLB IP库识别用户的出口IP,如果发现用户的接入不是最优的接入,通过大数据分析该用户在某个时段最应该使用的接入点,会下发重定向指令,让客户端连接到最优的服务端接入IP,WIFI下还会缓存住SSID和接入IP.

优点:让用户能就近/最优接入,减少网络的耗时

缺点:少部分用户首次使用需要连接2次服务器;

2.2.4 使用字典做数据压缩

减少带宽开销;安全

2.2.5 心跳

避免长连接断开

2.2.6 单连接并发请求

相对多连接单请求的传统HTTP模式(HTTP 2.0之前),用单连接可以大大减少客户端和服务端开销

结论

移动网络上我们能做的优化无非就是减少连接,减少请求,避免跨网跨区,优化协议.而随着4G/光纤的快速发展,以后越来越多用户在网络上的耗时会越来越少,意味着我们网络策略上的优化效果收益也会越来越低,这时我们把目光投向终端.

3. 终端耗时

同上,首先需要确认终端的耗时情况以确认优化预期和目标.

通过在客户端埋点的上报监控,发现手机Qzone某个灰度版本用户一些操作之后3秒以上没响应比率最高达30%;手机QQ某个灰度版本由于UI问题导致画面掉帧比率约15%,在投诉的问题分类中,卡、慢、卡顿投诉量长期居前三甲.

可以得出这样的结论:终端的问题很严重,而且跟用户操作体验直接相关!

3.1 Android/IOS系统背景

既然是想优化移动客户端,那对于操作系统(Android和IOS)需要有个基本的了解,两者都是基于UNIX/LINUX开发的系统,对于运维人员来说很多概念都很好理解.

其中比较重要的一条设计理念是:Android和IOS都能进行多线程开发,其中有一个是主线程也称UI线程,UI线程是唯一有权限操作用户UI的线程,如果用户在操作有体验上的问题,那肯定是因为主线程被堵塞或没有足够的运行资源.所以从主线程的监控和系统资源的占用入手.

3.2 监控的策略

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读