百度如何优化多数据中心的带宽成本?(1)
2016-02-20 19:34:02 来源: 熊亚军 高效运维 评论:0 点击:
三、外网流量优化的困难和挑战
由于峰值计费的收费模式,每个数据中心经常存在非常可观的空闲带宽,我们希望可以充分利用这些免费的空闲带宽,进而优化外网流量。
然而,面临以下这些困难和挑战:
1.面向Internet用户流量的实时性
从上面的数据中心流量图可以看到外网流量的波动规律。
例如,一般早上6点左右处于流量的波谷,在晚上到达流量的波峰。
一个直观的想法是将波峰的流量迁移到波谷,那么自然能极大的降低计费的流量值,从而降低付给运营商的带宽费用。
但是,面向Internet用户的流量是实时的,不可能将用户在晚上10点的观看视频产生的流量延后或提前到早上。
更不用说其它实时性要求非常高的业务,如搜索、SNS、网购、游戏等。
2.流量峰值的不确定性
上面的例子中,事先给出了数据中心的计费带宽值,然后再计算出数据中心在其它时刻的空闲带宽。
然而在实际中,我们难以事先得知这个月的哪个时刻到达计费峰值以及计费峰值是多少,也就难以计算该数据中心当前可以免费的接纳多少流量。
此外,常见的外网流量调度方式是修改DNS的配置,这存在一定的延时(新的用户请求到来才会改变当前的流量分布)。
然而,由于大规模用户行为存在一定的规律,从上面的流量图中,可以直观的看到数据中心每天的流量图存在一定的重复性和规律性。
并且已有成熟的机器学习模型和研究工作,可对流量进行较为准确的预测。我们可以基于预测的流量值,计算数据中心未来(较短的)一段时间内的空闲带宽。
四、如何更充分利用付费带宽
接下来我们考虑如何充分利用各数据中心的空闲带宽,从而更充分的利用付费带宽。
1.减少其它峰值计费DC的付费带宽
上图是两个DC的带宽曲线,其中:DC1在下午4时到达峰值,DC2在晚上23时到达峰值。
可以看到,在下午4时,DC2没有到达峰值,具有一定的空闲带宽。
这时,可将DC1的部分流量调度到DC2;晚上23时再将DC2的部分流量调度到DC1。
这样简单的流量调度,可以同时降低这一天DC1和DC2的流量峰值,从而降低了付给运营商的带宽费用。
当数据中心数量较多,并且不同数据中心部署用户行为差异较大的业务时,通过设计合适的流量调度算法,能大幅度的降低多数据中心的外网付费带宽。
这个调度方式存在一定的局限性:不同数据中心到达计费峰值的时刻比较接近;特别是部署相同业务的数据中心,或举办网络活动导致流量特别高的时候,所有的数据中心差不多同时到达这个月的流量峰值。此时没有数据中心存在空闲带宽,可用于接纳其它数据中心计费峰值的流量。
2.减少其它日均峰值计费DC的付费带宽
我们用上述峰值计费模式DC的空闲带宽来接纳日均峰值计费模式DC的流量,优化后的流量图如下图所示:
可以看到日均峰值计费模式DC每天的计费带宽值都有一定的减小。
不同于峰值计费的DC,日均峰值计费DC任何一天的计费带宽值的减小,都能减小这个月需要支付给运营商的带宽成本。
即使某一天所有DC都同时到达这个月的峰值,但这个月的其它天里,存在DC能接纳该日均值计费DC的峰值流量,就能降低该DC的带宽成本。
因此,降低日均峰值计费DC的付费带宽,一定程度上放宽了流量调度的局限性的限制。
3.利用外网空闲带宽进行内网流量的传输
利用多数据中心的空闲带宽来动态的减少(峰值计费或日均峰值计费模式)数据中心的带宽成本,都只用到了忙时(如上午11点到凌晨0点)的空闲带宽。
显然,数据中心忙时的空闲带宽很小,大部分的空闲带宽都集中在闲时(凌晨0点到上午10点)。
而这时用户访问产生的外网流量也很小,不能利用这时的大量空闲带宽。
分布式存储系统、云服务和搜索等业务,需要利用内网进行实时性要求不高的传输作业。
这些作业产生的背景流(Background Flow)占用了大量的内网带宽资源。
利用数据中心闲时的大量空闲外网带宽资源,进行可容忍延时的内网作业的传输,能有效的降低内网链路拥塞和带宽资源紧缺的状况。
需要注意的是,相对内网来说,外网的延迟和丢包比较严重。利用外网空闲带宽传输内网流量时,要将内网和外网统一调度,并充分考虑外网的传输性能,以免影响内网作业的性能。
五、后续展望
通过多数据中心的外网流量调度来优化计费带宽成本,存在一定的局限性,并且不能充分利用数据中心闲时的大量空闲带宽资源。
此外,利用外网空闲带宽进行内网流量的传输,需要考虑内外网统一配合以及外网传输质量等问题。
总的来说,多数据中心的外网流量调度存在诸多困难。然而,外网带宽的巨大成本值得去直面并一一解决这些困难。
如何一起愉快地发展
“高效运维”公众号(如下二维码)值得您的关注,作为高效运维系列微信群的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上精彩分享及群友原创。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。
提示:目前高效运维新群已经建立,欢迎加入。您可添加萧田国个人微信号xiaotianguo8 为好友,进行申请,请备注“申请入群”。
重要提示:除非事先获得授权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行。
【编辑推荐】
