通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  下士

注册:2009-11-23
跳转到指定楼层
1#
发表于 2016-5-28 14:25:43 |只看该作者 |正序浏览
李享、徐欢




对于国际化业务来说,为了给全球用户带来更好的体验,引入CDN加速是必要的手段之一。Akamai的国际化CDN解决方案,不管从技术还是从加速效果上都很卓越,但其背后高昂的费用让众多国际化业务处于拓荒和发展阶段的互联网公司望而却步。百度和很多公司一样,选择了与当地运营商合作自建CDN机房,一方面可以节约费用,另一方面可以将域名解析和资源调度等掌握在自己手里。但是这种自建的CDN机房存在一系列的问题,带宽资源浪费是其中最严重的问题之一。

带宽资源浪费
带宽资源的浪费主要由以下两个原因引起:
首先是由于传统的带宽资源分配策略导致的带宽资源浪费。当多个产品或者业务共享同一出口带宽时,传统的带宽分配策略是针对具体的产品或业务设置带宽使用上限,这样做的目的是为了保障某些“核心”服务不会受到其他服务的影响。这样的分配策略带来的问题也是显而易见的:如果核心服务处于低峰时段,而非核心服务此时恰好处理高峰时段,由于设置了带宽使用上限,有一部分带宽资源就会被浪费
另一个原因是由于国际化业务的部署在不同地域的地区时差导致的。如图1所示,图中的两条曲线分别代表某一服务在美国和泰国CDN的流量图。从图中可以看出,由于时差的原因,美国和泰国的流量变化趋势恰好相反,当美国CDN机房的流量处于高峰期时,泰国CDN机房的流量恰好处于低峰期,这一部分闲置的带宽资源就被浪费了。
带宽成本往往占据互联网公司成本的很大一部分,而其中国际化带宽往的费用非常昂贵。“一兆带宽一寸金”,如果将上述的这部分被浪费的带宽资源利用起来,将会为公司节约成本。
为了解决国际化CDN机房带宽资源浪费的问题,提高带宽资源利用率,我们提出了一些提高带宽资源利用率的方案。
基于服务的流量监测
在介绍我们的方案之前,首先我们引入基于服务的流量监测的概念。
通常我们只需对机房的出***换机进行流量采集,便可以获取当前的带宽使用情况。但是这样的监测粒度过粗,我们无法获知每个服务到底用了多少带宽。另外,不同服务的特性和优先级也是不同的。为了更好的了解各个服务和整个机房当前的流量情况,我们将现有的服务根据其特性和类型,大致分为以下三类:
(1)不可拒绝类服务
不可拒接类服务,例如用户对网页中的图片、文字等资源进行访问等页面请求。特点是流量较小;对实时性要求较高,延迟较大或无法响应的情况将会降低用户体验。因此对这类服务,需要充分的保证用户的请求被实时响应,服务优先级最高。
(2)可限速类服务
可限速类服务,主要是指服务器端提供的下载服务。这类服务要求下载过程中保证稳定性,下载中断或者拒绝下载会在一定程度上降低用户体验。当服务由于推广等原因引起流量激增时,可以采取限速的方式来调整带宽负荷,同时兼顾服务的稳定性。
(3)可拒绝类服务
可拒绝类服务,主要是指客户端后台发起的服务,例如升级请求,只有当服务器端接受升级请求,才会用推送的方式静默通知用户。正式因为不是由用户发起而是在后台运行,因此对用户来说是无感的。对于这一类请求,如果服务器端拒绝将不会影响用户体验。
方案1:带宽动态调整
带宽动态调整方案不同于传统的带宽分配策略。带宽动态调整遵循以下原则:处于高峰时段的服务,应该分配更多的带宽,来处理更多的用户请求;而处于低峰时段的服务,应该把多余的带宽让出来给其他服务使用。当然,这种调整一定要是动态的,在保证服务质量的同时,提高带宽资源利用率。基于这样的原则,结合服务的特性,我们提出了以下的带宽动态调整策略。

对于不可限速类服务,为了保证其服务的稳定性,理论上不设置带宽使用上限,只需动态调整其保护带宽即可。
对于可限速类服务,从用户体验的角度出发,理论上也不应该设置带宽使用上限。但当本地CDN 机房出口带宽饱和,并且无法通过调整可拒绝类服务有效降低带宽负荷时,需要进行限速操作。
对于可拒绝类服务,需要根据所有CDN 机房的当前出口带宽使用情况进行动态调整。一方面,当所有CDN 机房的负荷较重,不能有效保证其他服务的稳定性时,需要对用户请求等进行控制,适当拒绝一部分的用户请求,从而减轻带宽负荷保证服务质量;另一方面,当CDN 机房的可用带宽较为充裕时,可以接受更多用户的升级请求,提高带宽资源利用率
百度的国际化产品线引入了这种带宽动态调整的机制之后也取得非常不错的成效,具体如下:
数款国际化产品每天升级用户数提升3倍,所有用户升级到新版本周期比之前缩减67%;改善官网访问速率,首页加载时间提升35%左右;改善了用户下载服务,成功率从92%提高到95%以上;从用户的投诉反馈来看,由之前的一周4、5例反馈升级下载异常减少到目前的一个月一例左右。
整个CDN机房的带宽利用率从50%增加到80%左右。图5中展示的是用户升级比率的曲线,图6为对应的流量曲线,可以看出用户升级比率基本保持在100%,其中下降的部分为根据流量预测进行的自动调整,对应的流量曲线也相对较为平稳。整个带宽动态调整的过程无需人工干预。
总体来说,采用此方案后加速了整个国际化产品的推广进程,有助于产品口碑的树立,同时提高了产品更新迭代速度。
方案2:跨地域流量调度
为了解决不同地域的CDN节点因为地域时差原因导致的带宽资源浪费问题,我们提出了一种跨地域流量调度方案。
当接受到用户请求之后,首先会分析用户所处地域和IP段等信息,然后再去查询用户所在区域的CDN节点流量情况,如果当地CDN节点带宽富余,则会将用户请求直接转发到当地CDN节点;若当地CDN节点的带宽趋于饱和是,则会查询该IP段的用户到其他CDN节点的访问质量,从中选出一个最优的节点。
用户的请求首先发送到百度的LVS集群(BVS),Squid集群主要负责对用户请求进行转发,Squid会根据当前用户所在地域的CDN节点带宽使用情况和用户到其他CDN节点的访问质量选择最佳的CDN节点。客户端和用户会定期上报到各个CDN节点的访问质量,经过统计分析之后生成内存索引表,记录各个IP段用户的访问质量。同时,带宽监测也会实时将各CDN节点的带宽使用情况更新到内存当中。
目前带宽动态调整方案已经上线,跨地域流量调度器已经通过开源软件squid实现,需客户端支持302跳转即可完成流量自动调度。
在实际使用的过程中,我们遇到了例如针对大规模放量的调整方案、流量监测的实时性和预测的准确性、以及针对小文件分发的优化等问题,这些问题都还需要进一步考虑。我们的目标是既兼顾用户访问质量,又提升带宽使用率。我们希望每一个IT工程师都珍惜宝贵的带宽资源,对带宽资源浪费“say no”。

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-1 11:30 , Processed in 0.155093 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部