摘要:

大量服务提供商投资越来越多的更大数据中心来保证基础计算需求以支持他们的服务。因此,研究人员和行业从业者都集中了大量的努力设计网络结构有效互连和管理流量以保证这些数据中心的性能。不幸的是,数据中心运营商通常对于分享他们的应用程序的实际需求有所保留,使得评估任何特定设计的实用性具有挑战性。

此外,大规模负载信息的文献有限,无论是好是坏,到目前为止由单个数据中心运营商提供的用例并不普遍。在本文中,我们报告的网络流量中观察到一些Facebook的数据中心。Facebook运行Hadoop等传统数据中心服务,其核心Web服务和支持缓存基础结构表现出的行为与那些在文献中报道的形成了对照。我们报告对比Facebook的数据中心的网络流量位置、稳定性和可预测性,评论他们对网络结构,流量管理,交换机设计的影响。

介绍:

我们发现文献中流量的研究并不能完全代表Facebook的需求。这种情况尤其严重当考虑新型网络结构、流量管理和交换机设计。

比如,数据中心连接的拓扑结构的最好选择取决于主机间的联系方式。然而,因为缺乏具体的数据,研究者经常根据最坏的情况设计一个all-to-all的流量模型,即是主机之间的联系都是依照相同的频率和强度,而这并不值得。如果需求可以被预计或者保持稳定在合理的时间段内,不均匀的结构是可行的,即连接数据中心的不同部分用不同的方式,通过混合设计包括光纤和无线连接。

而另外一种提升性能的方式是提升交换机本身的性能,特别是,有些人提出简单修改像减少缓冲,端口数,交换机各层结构的复杂性,也有人提出,取代传统交换用circuit或混合设计,利用流量需求的局部性(locality),持久性和可预测性。更极端的是,基于主机的解决方案提倡直接连接主机。显然,无论如何,这些方案的价值取决于它们的负载。

在之间的研究里,一些建议不能被很好的评估因为缺乏大规模数据中心。几乎所有的先前的研究大规模数据中心的研究考虑的是微软数据中心。而Facebook数据中心和微软的有很多相似的地方,比如避免虚拟机,它们也有一些不同。而一些关键的不同,会导致不同的结论,我们描述这些差异并解释背后的原因。

我们的研究发现对重要结构的影响包括:

流量既不是局部框架(rack-local)也不是全局(all-to-all)的;局域性取决于服务而不是总是稳定的无论时间区间的单位是秒还是天。高效的结构可能受益于变量程度的超额认购和框架内的带宽小于通常部署。

许多流存在周期长但不是很大。负载均衡有效地分配流量;流量需求相当稳定甚至超过次秒级时间间隔。因此,大流量对象并不比中值流大很多,大流量对象集合改变的很快。突如其来的大流量对象在较长时间是频繁的而不是流量很大,可能混淆许多流量管理方法。

包是小(non-Hadoop流量的平均长度小于200字节),不显示on/off到来的行为(即是连续的到达)。服务器与100台主机和机架并发连接(在5ms间隔),但大多数的流量往往是注定(很少)10台机架。

文章的第二节主要讲以前的研究数据中心的流量的主要发现。主要体现在三个方面:第一,流量是局部框架的(rack-local),即80%的服务器的流量在框架内。第二,流量是突发的而且不稳定的在各种各样的时间尺度内。最后,包的的大小有两种,要么最大(MTU),要么很小(TCP ACK segment)。

第三节详细描绘了Facebook的数据中心,包括它们的物理结构(Facebook’s 4-post cluster design)、支持的服务(通过HTTP请求是如何服务)和收集数据的方法(包括Fbflow和Port mirroring)。

数据中心连接的设计,规模,甚至技术的合适程度在很大程度上依赖于其流量的需求。在第四节中,文章量化的流量的强度,局域性,和稳定性在Facebook数据中心的三个不同类型的集群(即Hadoop, Frontend machines serving Web requests和 Cache)中。

之前的研究表明,数据中心流量的稳定性取决于观测的时间尺度。在第5节中,我们分析Facebook的流量在合适的时间尺度下,以期了解各种流量管理和负载平衡方法可能会在这种情况下的适用性。

第六节主要描绘了top-of-rack交换机设计的各个方面。特别是,我们考虑包的大小和到达过程,以及到任何特定的终端主机并发的目的地的数量。此外,我们测试短时间内突发性的影响及其它对交换缓冲的影响。

总结:

Facebook的数据中心网络支持各种不同的服务,表现出不同的流量模式。我们发现几个服务与文献中的大幅偏离。不同的应用程序,结合Facebook的数据中心网络规模(成百上千的节点)和速度(10-gbps边缘链接)导致工作负载和以前公布的数据集的多种方式做对比。因为文章篇幅的限制,我们不能提供一个详尽的解释,我们描述可能对拓扑结构,流量管理,top-of-rack交换机设计的影响。

我们的方法强加一些限制在这项研究的范围内。使用终端主机捕获和时间戳数据包介绍了基于调度变化时间戳精度。此外,我们一次只能从几个主机捕获流量。同时,这些约束阻止我们评估影响像incast或微爆发,指出作为贡献者的可怜的应用程序的性能。此外,每个主机包转储必然是anecdotal和特别的,依赖同一框架内一个未使用的主机的存在作为目标。当Fbflow部署在数据中心时,它所提供的庞大的测量数据提出了另一个挑战,即数据处理和数据保存。我们因此认为有效的网络监视和分析是一个持续的和不断发展的问题。

Inside the Social Network’s (Datacenter) Network的更多相关文章

  1. openstack里面的Provider network 和 Tenant network 的区别

    openstack里面的Provider network 和 Tenant network 的区别 openstack里面的网络相对复杂.经常有人对几个网络概念搞混淆,这里基本说明下 Openstac ...

  2. 【解决】Failed to restart network.service: Unit network.service not found.

    问题:使用systemctl restart network 或 service network restart 命令重启网卡失败. 分析:原因其实也很简单,命令用错了,造成了找不到相应的网卡服务. ...

  3. android network develop(2)----network status check

    Check & Get network status Normally, there will be two type with phone network: wifi & mobil ...

  4. What is the difference between provider network and self-service network in OpenStack?

    "self-service networking" allows users to create their own virtual networks, subnets, rout ...

  5. 机器学习模型数据结构:logistic regression, neural network, convolutional neural network

    可以用两种方式来看神经网络,一种就是层的集合,也就是层组成的数组,另一种是神经元的集合,也就是神经元组成的Graph. 基于神经元的实现方式中,需要定义两个类 Neuron, Weight Neuro ...

  6. 论文阅读:An End-to-End Network for Generating Social Relationship Graphs

    论文链接:https://arxiv.org/abs/1903.09784v1 Abstract 社交关系智能代理在人工智能领域中越来越引人关注.为此,我们需要一个可以在不同社会关系上下文中理解社交关 ...

  7. (转)内置系统账户:Local system/Network service/Local Service 区别

    最近会转载一些 MSSQL 基础相关的文章. 参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在 ...

  8. 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别

    From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...

  9. 深入理解openstack网络架构(4)-----连接到public network

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...

随机推荐

  1. lavarel模板引擎blade学习

    blade 模板学习 特点 主要的两个优点是:模板继承和区块 继承页面布局 布局文件(layout.php) + 详情文件 (page.php) 的组合,即一般到具体的组合.在blade文件之中的体现 ...

  2. 《深入理解JVM》读书笔记

    目前只是整理了书的前几章,把jvm的内存划分简要说明.垃圾回收算法.垃圾回收器.常用的命令和工具进行说明.命令和工具的使用找个时间需要详细按步骤截图说明. 还有一部分内容是举例说明了一下字节码指令的样 ...

  3. C# ActiveX 网页打包验证自动升级

    原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考——BT90 ...

  4. jenkins发版脚本更新

    jenkins 项目名中明确了 是jar tar.gz war包研发需要提供  项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...

  5. windows 下配置 Nginx 常见问题

    因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我的系统是win7旗舰版的,到官网下载最新版本 ...

  6. 四,ESP8266 TCP服务器(基于Lua脚本语言)

    我要赶时间赶紧写完所有的内容....朋友的东西答应的还没做完呢!!!!!!!没想到又来了新的事情,,....... 配置模块作为TCP服务器然后呢咱们连接服务器发指令控制LED亮灭 控制的指令呢咱就配 ...

  7. 提高SQL查询效率的30种方法

    转载:提高SQL查询效率的30种方法 内容摘录如下: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中 ...

  8. “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生

    错误提示: “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理. 发现不明确的匹配. 问题原 ...

  9. Java关键字(二)——native

    本篇博客我们将介绍Java中的一个关键字——native. native 关键字在 JDK 源码中很多类中都有,在 Object.java类中,其 getClass() 方法.hashCode()方法 ...

  10. odoo明细表汇总数据

    一.在主表中#改动地方 总结算金额 求和:def _get_subtotal2(self, cr, uid, ids, field_name, arg, context=None): # 初始化 re ...