读了阿里云 rds 读写分离的云这段短文,对最后一段话的理解

阿里云破纪录的背后:377秒是如何炼成的?
发表于 10:00|
来源阿里云“飞天”团队|
作者阿里云“飞天”团队
摘要:SortBenchmark的出现,是希望能用最简单的方法,评估出不同的计算模型,计算平台的计算能力优劣?而排序是最基础的计算问题,任何一本数据结构和算法的计算机教材,首先要讲的,就是各种排序算法。
10月28日,Sort Benchmark官方宣布,阿里云用377秒完成了100TB的数据排序,打破了此前Apache Spark创造的1406秒纪录。在含金量最高的GraySort和MinuteSort两个评测系统中,阿里云分别在通用和专用目的排序类别中创造了4项世界纪录。
消息一出,整个技术圈都沸腾了,特别是对云计算高度关注的互联网、计算机行业。阿里云打破世界纪录,再次点燃了大家对分布式计算的热情。同时,大数据、云计算的各种圈子里也掀起了讨论:这件事情有多难?怎么做到的?对普通人意味着什么等等。
基于这些原因,我们发表此文,希望从阿里云的角度回答大家的疑问。
这件事情有多难?
SortBenchmark的出现,是希望能用最简单的方法,评估出不同的计算模型,计算平台的计算能力优劣?而排序是最基础的计算问题,任何一本数据结构和算法的计算机教材,首先要讲的,就是各种排序算法。所以排序,当之无愧的成为这个简单,但直接有效的benchmark。&
SortBenchmark竞赛最早的纪录追溯到1987年,当时都是单机的比赛。如何造出最强大的机器,如何尽量压榨单台机器的性能是大家的主要工作。&
但从1998年开始,大家的策略和思路发生了改变,分布式计算开始成为主流。大家的工作重点也转变为:如何有效调度成百上千乃至几万台机器上的CPU、内存、网络、磁盘IO等物理资源,最快完成海量数据的排序。这就像军队里,管好几个人,你可以当班长;管好几十个人,你可以当排长;但要管好几万人,你才能当将军。
而且,对大规模集群做线性扩展,远比大家想象得困难。正如,一个班长说“我只有几个人,所以我才是班长,但如果你现在给我几万人,我马上就是将军了”,大家会觉得好笑一样。当规模不断扩大,系统的各种瓶颈都会逐渐出现,原来能处理所有消息,能做出各种调度决定,现在发现忙不过来;如果找出下级代理,可能又会发现代理做出的决定和处理总不是最好的。
这还只是一种资源的调度,当计算需要多种资源完美配合时,你可能会发现内存是有效调度了,但是会影响网络的使用;网络可能用好了,但是又影响了磁盘的有效利用。调度不好时,各个维度可能互相冲突。
当你把资源调度得差不多了,你可能发现其实这个计算任务如果从机器A上换到机器B上运行,时间会短很多。或者机器A本来很适合,但是碰巧机器A坏了,就像几千人的军队打仗,有人临阵脱逃很正常。诸如此类的问题,随着规模的不断扩大,会急剧复杂化。可以说,规模每增加一个数量级,分布式计算平台需要处理问题就会完全不同。而如何利用大量低端机器达到高性能,正是云计算技术的核心挑战。
阿里云的“飞天”分布式计算平台于2013年正式上线了5000台的单集群规模,现在生产线上的规模更大。关于如何支持这么大的规模,可以参考VLDB
2014上伏羲发表的文章,这不是本文的重点。本文接下来会重点介绍在支持如此大规模计算集群后,我们还做了哪些事情,让一万亿条记录,100TB数据的排序能在不到7分钟完成。
阿里云如何做到的?
“飞天”是阿里云的分布式计算平台,不仅承担着阿里集团内部所有的离线数据处理任务,同时也提供阿里云公共云服务的基础平台支撑。“飞天”系统的关键模块包括:(a)Pangu-分布式文件系统,负责存储和管理计算中心的数据文件;(b)Fuxi-分布式调度系统,负责管理计算中心的集群资源,调度分布式系统中运行的在线和离线应用。Fuxi提供了一种名为FuxiJob的大数据批处理框架,能处理任意的基于DAG(有向无环图)描述的用户计算任务。
Fuxi已经部署在了阿里巴巴多个计算中心的数十万服务器上,单个集群的规模超过5000台机器。任何可以用DAG描述的离线数据处理作业都可以用Fuxi
Job来执行,包括但不限于MapReduce作业和更加复杂的机器学习作业。Job的输入输出文件以及运行过程中的临时文件都存储在Pangu中,依赖Pangu提供的文件副本和locality配置来获取更好的性能,同时提高数据的可靠性。
接下来我们重点介绍基于“飞天”系统开发的Fuxisort程序。我们在GraySort和MinuteSort两项比赛中使用相同的程序,程序中的优化将在后续章节中详细介绍。
首先,程序会对待排序数据进行采样,以确定数据各分片的范围。如图1所示,除了采样之外,整个数据排序过程分两大阶段:map阶段和sort阶段。两个阶段都包含多个并行的任务。
图 1. FuxiSort流程图在map阶段,map任务通过Pangu的ChunkServer进程从本地磁盘中读入数据分片,然后对输入数据进行RangePartition分配给不同的sort,分配后的数据通过网络直接传输给sort任务。在sort阶段,所有的sort任务周期性地将map任务发过来的数据读入内存,当内存缓冲区满的时候,进行基于快速排序算法的内存排序,内存排序的结果数据将会被写入Pangu的temporary文件(这种文件存放在本地,不会做多份的拷贝)。当sort任务接收完所有的map数据后,会将所有在内存中排好序的数据以及之前写入temporary文件中的数据一起做归并排序,归并排序的最终结果输出到Pangu中。当FuxiSort所有的sort任务都执行完后,会生成多个的Pangu文件,它们在全局也是有序的。2. 实现和优化a)输入数据采样。为了降低数据倾斜带来的性能影响,我们对输入数据做了采样,根据采样结果来确定RangePartition的边界,从而保证每个sort任务处理的数据量尽量接近。举例说明,假设输入数据被分成了X个文件,首先,我们在每个文件里随机选取Y个位置,从每个位置开始连续读取Z个数据样本,最后共得到X * Y * Z个样本。然后,我们对这些样本数据进行排序,排序后样本数据被均分为S份,这里S为sort任务的个数,这样就得到每个sort任务待处理数据的范围边界。由于样本是均分的,可以使得每个sort任务都处理了几乎相等的数据量。对于GraySort而言,我们有20000个输入文件(X),每个输入文件选取300个位置(Y),每个位置读取1个样本(Z),最终我们选取6000000条样本进行排序,并均分为20000份(sort任务个数),map任务将根据上述样本来进行RangePartition,保证 sort任务处理的数据尽量均匀。整个采样过程大约耗时35秒。对于MinuteSort而言,3350个输入文件,我们在每个文件里选取900个数据作为样本,总的样本数量为3015000,排序后分成10050份。整个采样过程耗时4秒。对于IndySort,则不需要这个采样过程。b)IO 双buffer。map阶段,FuxiSort在一个I/O buffer中处理数据,同时Pangu在另一个buffer中执行数据读入操作。这两个buffer的角色会周期性地进行切换,这样就能保证处理数据操作和I/O操作能并行起来,从而能够大幅降低任务的Latency。
图2.&FuxiSort各阶段启动顺序
c)流水线操作。如图2所示,为了进一步降低整体Latency,我们把排序过程的每个阶段分解成许多小的步骤,并且尽可能地将这些小的步骤重叠起来执行。这些分解出来的小步骤如下所示:数据采样;Job启动;MapTask读输入数据;MapTask发送数据至SortTask;SortTask接收数据;SortTask将内存中的数据进行排序,当内存装不下时,将排好序的数据dump到临时文件中;SortTask将内存中的有序数据和临时文件中的有序数据做merge sort;SortTask写最终输出文件。FuxiSort将数据采样过程和Job启动过程并行起来执行,在Job启动阶段做的主要工作包括任务的分发,以及一些其他的数据管理工作,比如收集所有SortTask的网络地址,并且通知所有的MapTask。当数据采样过程结束时,采样程序会将每个分区的界限存放在Pangu上,并且会建立另一个通知文件存放在Pangu上,用来标志采样结束。一旦任务分发完成,每个MapTask就开始周期性地检查通知文件是否存在。一旦检查到通知文件存在,也就意味着采样程序产生的各分区界限可用,MapTask就会立刻读取这些分区界限,并且根据这些界限进行数据分发。步骤(3)(4)和(5)在map阶段并行执行,步骤(7)和(8)在sort阶段并行执行。在步骤(6)中,只有当分配给task的内存已经全部填满,才会进行排序和dump,由于在排序过程中,内存被全部占用,没有剩余内存可以接收新的数据,因此步骤(5)会被阻塞。为了缓解这个问题,我们将步骤(5)和(6)并行起来,一旦内存使用超过一定量值,就开始做排序,这样,步骤(6)会被提前执行,而步骤(5)也不会被阻塞。当内存全部占满时,我们将内存中已经排好序的数据进行归并,并dump到临时文件中。显然,开始做排序的内存阈值越低,步骤(6)开始得越早。在我们的实验中,当接收到的数据占用分配给Task内存的1/10时,开始执行步骤(6)。通过这种方法,我们将I/O和计算并行起来,并且没有明显的延迟,虽然这种方法可能会需要merge更多的临时文件,但在我们的场景中没有因此导致明显的overhead。图2说明了每一步所花费的时间以及在执行过程中这些步骤之前的重合部分。d)网络通信优化。在map task和sort task之前有明显的网络通信流量,每个网络包到达后都会产生CPU中断。如果对中断的处理被绑定到一个指定的CPU内核上,当这个CPU内核忙于排序时,对中断的处理会被延迟,这就可能导致请求超时,甚至丢包。通过设置”sm_affinity”,可以将网络中断产生的负载均衡到所有的CPU内核上,请求超时和丢包的比率明显下降。
图三. 实时计算框架e) 对MinuteSort的进一步优化。由于MinuteSort的执行时间要求限制在60秒内,一般离线作业的调度开销就变得不容忽视。为了降低这些开销,我们在Fuxi的准实时Job模型上执行MinuteSort,Fuxi准实时Job模型是为了降低调度产生的overhead,使内存计算获得很高的性能而开发的。Figure 3说明了准实时Job模型的框架。在典型的生产环境中,准实时系统是一个长期运行的service,会在集群部署过程中被启动,并且在每台机器上启动一个不退出的worker进程。系统启动之后,用户可以向准实时系统的调度器提交各种job,并且可以获得job在运行期间的状态。sort benchmark竞赛要求与排序直接相关的启动和退出过程也需要包含在最终的时间里,为了遵守这一规则,我们在提交MinuteSort job之前,先通过程序去启动准实时系统worker,在job运行结束后,再将worker进程停掉,在最终提交的结果中,包含了worker启动和停止所用的时间。准实时系统针对的场景是在中等规模大小的数据集(不超过10TB)上,对延迟敏感的数据处理过程,在这种规模的数据集下,包括输入和输出在内的所有records都可能被cache在内存中。在我们的实验中,我们只在准实时系统中运行MinuteSort。对普通人意味着什么?从2009年阿里云诞生那天起,我们的愿景就是打造一个自研的、通用的、大规模分布式计算底层系统,让计算像电一样成为公共服务,“飞天”平台是承载这一理念的技术核心。FuxiSort打破Sort Benchmark排序比赛世界纪录是阿里云6年技术沉淀的直接体现,但这仅仅是开始。技术本身不是目的,阿里云在任何技术上的进步,都会通过云产品对外输出,让中国乃至全世界的云计算客户收益。比如本次参赛的FuxiSort,通过开放数据处理服务(Open Data Processing Service, 简称ODPS)对外商用。ODPS是由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域。阿里巴巴的离线数据业务都运行在ODPS上(详情参考/product/odps/ &)。阿里云将借助技术创新,不断提升计算能力与规模效益,希望更多的合作伙伴、中小企业、开发者能够受益于云计算带来的便利和价值,共同将云计算变成真正意义上的公共服务和普惠科技。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章【TechWeb报道】6月26日消息,近日LinuxCon + ContainerCon + CloudOpen中国(LC3)大会在中国召开。这是这一顶级开源盛会首次落户中国。在此次大会现场,Linux基金会执行董事Jim Zemlin宣布,中标软件和阿里云正式
6月16日,国外媒体报道,咨询公司Gartner周四发布的公共云行业报告,首次提及阿里云,腾讯没有列入。IT研究小组指出,虽然中国的阿里巴巴相较于国际市场是新鲜人,但与强劲对手亚马逊、微软和谷歌相比,仍然处于竞争的有利位置。
今年以来,混合云巨大的市场潜力开始逐渐释放,随之而来的,则是嗅到了金钱味道的云计算服务商,它们开始涉足混合云市场,并开始了一场有力的角逐。
当下,云计算已经成为了一种基础服务,越来越多的企业和个人使用
阿里云宣布将于明年早期在印度成立第一家数据中心,未来将覆盖更多区域,为中小企业提供云计算服务。到日阿里云数据中心将在印度孟买建成,另一家数据中心将在印尼雅加达成立。
北京时间6月10日上午消息,阿里云今日宣布将在印度和印度尼西亚新建数据中心,为海内外企业提供全球一张网云计算服务。阿里云全球覆盖面将提高至由数十个飞天数据中心覆盖的17个区域。
凤凰科技讯 据BusinessWire北京时间6月10日报道,阿里巴巴云计算部门今天在其于上海举行的计算大会上宣布,该公司将在印度孟买和印尼雅加达新建两座数据中心,并预计在截至日的财年内投入运营。
云存储服务作为一种新兴的互联网存储服务模式,其在法律上的定性及适用问题都还需进一步明确。而如何防止用户利用其进行违规违法的操作,是云存储服务商需要思考以及进行预防的工作。
今天上午,有网友在朋友圈指责阿里云监控其数据,并提醒其他用户删除阿里云镜像中的特定文件。
对此,阿里云先是转发该微博,表示&请大家勿传播未经证实的猜测,稍后可关注阿里云正式的技术说明。&
5月25日,第三届数博会(2017 中国国际大数据产业博览会)在贵阳召开。这个展会已经成了贵州的一张名片。其规格不断得到提升:去年共同主办单位是国家发改委和贵州省政府,今年共同主办单位又增加了工信部和网信办。今年还变得更加国际化,不只是有马云、马化腾等企业大佬参加,还迎来了高通、甲骨文、戴尔等顶级科技企业的高层。
新浪科技讯 5月25日消息,在贵州数博会上,阿里云与贵阳市公安局联合宣布启动&块数据中心云平台项目&建设,为现有指挥中心提供更智能的人工智能算法。
据了解,&块数据&是指以一个物理空间
早在十年前,阿里的愿望是影响世界经济的格局。而凭借云计算的洋流,阿里云势必将成为抵达所有海岸的海水。因为有了阿里云,这个世界变得更加智能,变得和以前不一样了,这就是企业价值的究极进化。
从5月12日爆发至今,名为WannaCry的勒索病毒让全球数十万Windows计算机中招,黑客将用户计算机中的重要文件实施加密,并索要赎金解锁。这种情况如果发生在企业服务器当中,那么将带来严重损失。
【TechWeb报道】5月16日消息,自2015年宣布独立运营的美团云今日正式对外发布全新品牌logo,首次对外展示品牌形象。
近几年,云计算从虚无缥缈的技术概念成为&IT基础设施的水和电&,各行业企业对云计算
5月12日消息,马来西亚总理纳吉布今日与阿里巴巴董事局主席马云就eWTP(Electronic World Trade Platform电子世界贸易平台)在马来西亚的推进再次对话,并将马来西亚多媒体超级走廊项目MSC证书递交其手,这或许意味着阿里巴巴将加快云计算、大数据、人工智能等技术引入马来西亚的步伐。
对于个人建站用户来讲,租用大企业的云服务器是个不错的选择,省去了自己购买服务器及高速宽带的成本,也没有后期维护的麻烦。
不过一般独享云虚拟主机一年的价格一般都在千元以上,对于入门级用户来讲,配置及费用
活动时间: 19:30:00
活动地址:海淀南路36号海润艾丽华酒店ARIVA三层伦敦厅
活动嘉宾:虚拟运营商产业联盟秘书长邹学勇 、 蜗牛移动陈艳、 国美张一凡
无论是传统媒体还是新媒体,都是生意,生意的好坏由账...[]
你卖到100亿或者没到100亿,和食客又有多少关系?100亿...[]
不必刻意腹诽传统媒体和硬广,不必把互联网思维当万能...[]
Copyright &
All rights reserved.随着等保2.0的脚步越来越近,云上等保受到越来越多人的关注。近日在成都举行的云栖大会安全论坛上,牛君特意关注了阿里云云上系统的等保合规方案。
阿里云最早于2012年通过 ISO 27001 认证,并于2016年9月通过新的云计算安全等级保护三级测评。据阿里云安全专家行逸(易鑫)介绍,这是目前国内首批、也是唯一一家通过国家权威机构依据云等保要求联合测评的公共云服务平台。
阿里云安全资质历程:
2012 – ISO 27001
2012 – 等保三级
2013 – 云安全国际认证金牌
2013 – 可信云服务认证
2016 – 新版 ISO 20000 认证
2016 – 阿里金融云通过SOC独立审计
2016 – CNAS云计算国家标准测试
2016 – 支付卡行业数据安全标准(PCI-DSS)
2016 – 新加坡国家标准 MTCS T3级认证
阿里云采用的是“云上系统合规责任共担”机制,租户的云上系统等保合规由客户负责,阿里云负责的是云平台等保合规。那么对于阿里云的租户而言,如何帮助他们依据新的云等保要求,通过等保测评呢?
等级保护实施的基本流程包括,系统定级、建设整改、等级测评、系统备案和监督检查等五项工作。
首先,阿里云可提供等保备案证明、测评报告结论页和客户等级保护测评说明等材料,协助租户云上系统通过等保测评。
而且,为了便于阿里云云上系统能够快速满足等保合规的要求,阿里云通过建立“等保合规生态”,联合阿里云合作伙伴咨询机构、各地测评机构和公安机关,向阿里云客户提供一站式、全流程等保合规解决方案。
等保合规方案工作分工
在整个测评流程中,最核心的是对信息系统进行建设和整改,以建立起完善的安全管理和安全技术体系。前者包括策略、制度、机构、人员、建设、运维等,后者则从底向上,包括物理环境安全、网络通信安全、设备与计算安全,和应用与数据安全。
安全技术体系建立的主要手段包括使用安全产品、加固系统配置和开发安全控制。其中通过使用成熟的安全产品,可以快速满足合规要求,同样,阿里云可以提供完整的安全解决方案。
从物理到应用四个层面的解决方案
阿里云的优势在于,拥有丰富的云上系统测评经验,全线的安全防护产品,和一站式的整体解决方案,为云上租户减少了测评工作中大量的沟通组织工作。同时,全面满足合规要求的云安全产品也为用户省去了挑选和部署的复杂工作,节省了在安全上的投入成本。

我要回帖

更多关于 阿里云 rds 读写分离 的文章

 

随机推荐