大数据经典论文解读
徐文浩
bothub 创始人
13843 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

04 | The Google File System (二): 如何应对网络瓶颈?

你好,我是徐文浩。今天这一讲,我们接着来学习 GFS 论文中第二个重要的设计决策,也就是根据实际的硬件情况来进行系统设计。
大数据系统本就是为“性能”而生的,因为单台服务器已经满足不了我们的性能需要。所以我们需要通过搭建成百上千台服务器,组成一个大数据集群。然而,上千台服务器的集群一样有来自各种硬件性能的限制。
在单台服务器下,我们的硬件瓶颈常常是硬盘。而到了一个分布式集群里,我们又有了一个新的瓶颈,那就是网络
那么在这一讲里,我们就来看看网络层面的硬件瓶颈,是如何影响了 GFS 的设计的。在学完这一讲之后,希望你能够理解,任何一个系统设计,都需要考虑硬件性能。并且学会在对自己的设计进行评估的时候,能够寻找到系统的硬件瓶颈在哪里。

GFS 的硬件配置

不知道你有没有想过,2003 年的 GFS 是跑在什么样的硬件服务器上的呢?论文的第 6 部分还真的透露了一些信息给我们。Google 拿来做微基准测试(Micro-Benchmark)的服务器集群的配置是这样的:
19 台服务器、1 台 master、2 台 master 的只读副本、16 台 chunkserver,以及另外 16 台 GFS 的客户端;
所有服务器的硬件配置完全相同,都是双核 1.45 GHz 的奔腾 3 处理器 + 2GB 内存 + 两块 80GB 的 5400rpm 的机械硬盘 + 100 Mbps 的全双工网卡。
然后把所有的 19 台 GFS 集群的机器放在一台交换机上,所有的 16 台 GFS 的客户端放在另外一台交换机上,两台交换机之间通过带宽是 1Gbps 的网线连接起来。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

GFS论文第二部分探讨了如何应对网络瓶颈,强调了系统设计需要考虑硬件性能。文章介绍了GFS的硬件配置和数据写入过程。GFS在面对网络瓶颈时采用了控制流和数据流的分离,以及流水线式的网络传输。硬件配置方面,GFS在2003年跑在双核1.45 GHz的奔腾3处理器、2GB内存、80GB的5400rpm机械硬盘和100 Mbps的全双工网卡的服务器上。文章详细描述了GFS的数据写入过程,包括客户端向GFS集群写数据的具体步骤,以及GFS如何解决数据写入过程中的一致性问题。总的来说,GFS通过硬件配置和数据写入过程的优化,有效应对了网络瓶颈,为读者提供了深入了解大数据系统性能优化的重要信息。 GFS在面对网络瓶颈时采用了控制流和数据流的分离,以及流水线式的网络传输。硬件配置方面,GFS在2003年跑在双核1.45 GHz的奔腾3处理器、2GB内存、80GB的5400rpm机械硬盘和100 Mbps的全双工网卡的服务器上。文章详细描述了GFS的数据写入过程,包括客户端向GFS集群写数据的具体步骤,以及GFS如何解决数据写入过程中的一致性问题。 GFS通过硬件配置和数据写入过程的优化,有效应对了网络瓶颈,为读者提供了深入了解大数据系统性能优化的重要信息。 GFS的流水线式的网络传输方式最大化地利用了服务器的带宽,并减少了交换机的带宽瓶颈。此外,GFS还设计了独特的Snapshot操作,通过控制流在chunkserver本地进行文件复制,避免了网络传输,进一步优化了网络传输性能。整体而言,GFS的设计充分考虑了硬件性能和网络瓶颈,为大数据系统性能优化提供了重要思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(31)

  • 最新
  • 精选
  • mysql利用b+出度打,层级底的特性,尽可能减少一次查询中随机io开销。 kafka利用磁盘顺序写入较随机写入快的特性,批量顺序写文件。 redis ignite 等内存数据库都基于内存性能远胜于磁盘等持久化外部存储,从而基于内存做存储系统。

    作者回复: 👍

    2021-09-27
    22
  • webmin
    今天课程中关于网络优化的内容,基本是出自GFS论文中的3.2节Data Flow,我很好奇是因为老师有关于广告系统的开发经验,所以能从一个300个单词左右的小节中看出这么丰富的信息,还是老师有其它的分析框架或辨识方法?还望老师抽时间传授。 另加一个注解流水线(pipeline)式的网络传输是有效利用了网络是全双工的原理,即左手进右手出,左右各100Mb。

    作者回复: 论文大部分都是很精简的,所以如果每段内容彻底弄清楚其实展开都有很多问题可以讲,而且GFS的核心瓶颈往往就在网络,所以我特地深入展开一下。 关于网络优化,更多是因为过去的经历和经验中遇到很多这方面的困扰吧。因为十年前是没有云计算平台可以用的,需要自己来建数据中心。跨地域的数据中心的网络传输也要想办法自己解决,所以的确会遇到各种应用开发遇不到,但是教科书和论文里遇到的问题。

    2021-09-27
    8
  • Ping
    能再解释下“南北大,东西小”是什么意思吗?

    作者回复: Ping同学, 你好,你看我在里面放的数据中心的网络架构图。按照上北下南,左西右东来理解方位。 在有大数据需求之前,一般我们的网络流量,都是互联网请求访问服务器,然后通过三层交换机到达某一台具体服务器,服务器给出结果,再通过三层交换机返回给外部。这里面的网络流量都是南北向的。 但是在大数据处理过程中,大部分数据传输都是最下面一层服务器之间互相传输,也就是东西向的。

    2021-09-27
    2
    8
  • 陈迪
    思考一个问题,20年过去了,硬件环境已经哪些发生了根本性的变化?现代的分布式文件系统应该什么样的?

    作者回复: 好问题,值得探讨。 从大数据系统来看,随着SSD的廉价,原先觉得SSD不适合作为Hadoop的存储层这一点在逐渐失效。SSD,机械硬盘,乃至磁带冷备随着数据越来越多,价格越来越便宜,成为各有应用场景的硬件了。 SSD的出现使得随机读的性能上了几个数量级,不过这个针对的更多是数据系统的Serving层。 不过网络瓶颈似乎变化不大。

    2021-09-28
    7
  • 在路上
    徐老师好,GFS论文3.2 Data Flow中提到“Without networkcongestion, the ideal elapsed time for transferring B bytes to R replicas is B/T + RL where T is the network throughput and L is latency to transfer bytes between two machines. Our network links are typically 100 Mbps (T), and L is far below 1 ms. Therefore, 1 MB can ideally be distributed in about 80 ms.” 我不明白的是RL部分的计算,为什么L<1ms,L的大小和要传输的数据大小无关吗?为什么不是B/T1 + R*B/T2,T1表示客户端到GFS的网速,T2表示GFS集群内的网速?希望能得到老师的指点。

    作者回复: 我们先要弄清楚什么是网速?我们关注的是延时还是吞吐量? 在pipeline传输里,A节点传输数据到B,B转手给到C,C再给D,B和C都不需要等数据传输完再往下发。而是收多少立刻再发多少。 所以时间就是 B/T + R个节点之间的延时(A->B,B->C,C->D 一共三个延时)T。

    2021-09-27
    2
  • leslie
    UDP替代TCP去实现网络的传输,传完了就好了;监控而已-丢失了再传即可;不过当时忽略了一个关键问题-windows并不适合去用很多适合在linux下的软件,导致了备份和恢复的灾难性隐患。

    作者回复: Windows现在有了WSL2了,体验还是不错的。

    2021-09-30
    1
  • Geek_2e6a7e
    阿里自研MaxCompute大规模集群计算有什么特别创新的地方么,这块有相关资料或者论文参考下么?

    作者回复: 抱歉,我没有使用或者研究过MaxCompute。不过我相信市场上主流的大数据方案其实底层逻辑都是相同的。 我简单看了一下MaxCompute的介绍,我觉得MaxCompute更像一个“产品”而不是一种专门的“技术”,是对多种数据需求,包装成了一个整体的产品供云计算的用户使用。

    2021-09-28
    2
    1
  • zhanyd
    适合自己的就是最好的,不一定要去追求什么高大上的技术,能够低成本满足需求的就是好方案。创新不一定是要创造出什么新东西, 把一些东西按适当的方式组合在一起也是创新。

    作者回复: 👍

    2021-09-28
    1
  • 核桃
    这里其实是隐藏了一个功能,就是GFS能识别到机架上的服务器拓扑结构的,不然分配的时候是无法感知到到底哪个节点是离客户端比较近的。另外一般分配数据节点的时候,有时候客户端并不一定在集群内发起的,而是在外部的。那么这时候分配的原则也是两个节点可能会近点,但是第三个会远离,甚至在不同机房中。
    2021-11-16
    8
  • Spoon
    零拷贝,利用DMA避免了两次内核态和用户态的切换。
    2022-09-08归属地:浙江
    2
收起评论
显示
设置
留言
31
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部