英特尔??傲腾? 长期内存是Intel在2019年宣布的一款革命性的产品,英特尔??傲腾? 长期内存是一种全新的内存类型,其架构设计旨在从数据中心中罗致更多价值,重构数据中心内存/存储条理结构。差别于古板的DRAM,英特尔??傲腾? 长期内存集大容量、经济性和长期性于一身,能够支持数据中心多个应用场景。九州酷游官网基于英特尔??傲腾? 长期内存做了大宗的应用场景解决计划,笼罩大数据剖析、数据库、云与虚拟化、漫衍式存储等应用场景。为了资助用户通过越发无邪的架构来实现立异型的应用,助力企业实现性能突破,九州酷游官网宣布了基于英特尔??傲腾? 长期内存手艺的Spark应用计划。
Apache Spark是专为大规模数据处置惩罚而设计的快速通用的盘算引擎,常用来构建大型、低延迟的数据剖析应用程序。Spark 一个主要特点在于,其能够在内存中举行盘算,这使得其数据剖析效率往往高于其它盘算引擎,可是,服务器内存资源的限制也使得其性能的扩展保存着一定的瓶颈,在超大规模负载中无法充分验展其使用内存举行盘算的性能优势。为相识决此问题,九州酷游官网在 Spark 计划验证中使用英特尔? 傲腾? 长期内存取代古板的 DRAM 内存,实现了数倍的性能提升,被证实可以作为 Spark 内存扩展的优先计划。
Spark 搭载了高效的 DAG 执行引擎,可以通过基于内存来高效处置惩罚数据流。与Hadoop 的 MapReduce 相比,Spark 基于内存的运算要快 100 倍以上,基于硬盘的运算也要快10 倍以上,这使得其能够在大数据情形下关于数据举行实时处置惩罚。同时,其高容错性和高可伸缩性也使得其成为大数据安排的突出优势,用户可以将 Spark 安排在大宗廉价的硬件之上,形成集群,知足低本钱下的高性能盘算需求。
在目今的应用情形下,Spark 可以用于批处置惩罚、交互式盘问(Spark SQL)、实时流处置惩罚(Spark Streaming)、机械学习(Spark MLlib)、图形盘算(GraphX)等负载,这些差别类型的处置惩罚都可以在统一个应用中无缝使用。正是由于 Spark 具备上述优势,以是其普遍应用于云盘算、物联网、机械学习等前沿领域的超大型数据集快速剖析处置惩罚之中。
显然,高性能的数据剖析是 Spark 的一个主要优势,要提升性能,除了可以在软件优化方面入手之外,还可以从硬件角度举行思量:由于 Spark 依赖内存举行盘算,以是内存的速率、容量关于盘算效率至关主要,若是数据量凌驾了集群内存能容纳的最大值,部分数据就会落在相对低速的磁盘上,这导致Spark数据处置惩罚能力无法充分验展。
扩展内存容量是一个较量简朴、直接的要领,可是问题同样保存。首先,服务器内存插槽有限,且一样平常支持128GB 的 DRAM 内存,这决议了单台服务器扩展的总内存容量受到严酷限制;其次,若是接纳增添服务器节点的方法举行扩展,这些增添的服务器节点不但意味着采购本钱的增添,也会带来不菲的空间、运维本钱。再加上企业级的大容量 DRAM 内存自己就价钱腾贵,使得许多企业的 Spark 系统遭受着重大的本钱压力。
由于介质、手艺等缘故原由限制,在现有的手艺条件下古板 DRAM 内保存容量与本钱上很难实现质的突破,以是,寻找立异的存储介质与架构也就成为了 Spark 系统性能扩展的主要偏向。在较量英特尔? 傲腾? 长期内存与 DRAM 内存之后,九州酷游官网决议实验接纳英特尔? 傲腾? 长期内存来举行 Spark 内存池扩展。
九州酷游官网选择英特尔? 傲腾? 长期内存的缘故原由不难明确。首先,英特尔? 傲腾? 长期内存提供了行业领先的高吞吐率、低延时、高服务质量和超高的耐用性,可以提供靠近内存的延迟,并支持快速缓存和快速存储,对应用举行加速。
其次,英特尔? 傲腾? 长期内存的单装备容量抵达512GB ,远超DRAM 内存的128GB,这使得其可以将系统内存扩展至6TB(不包括系统自身内存)。并且,英特尔? 傲腾? 内存的单位容量价钱要远低于DRAM 内存,这些特征支持企业在数据中心安排更大、更经济的数据集,在大型内存池中获得新的洞察。
在本计划中,九州酷游官网使用英特尔? 傲腾? 内存作为 Spark 系统的存储介质,以解决服务器内存缺乏的问题。英特尔? 傲腾? 内存有App Direct 模式和内存模式两种模式。本次测试接纳App Direct 模式 ,App Direct 具有数据长期化、高容量、高可用性、显著加速存储速率等特点,是现在英特尔? 傲腾? 内存主要使用模式(两种计划的对好比图1所示)。
图1
为了验证英特尔? 傲腾? 长期内存的使用关于 Spark 系统性能的影响,九州酷游官网基于英特尔? 傲腾? 内存与 DRAM 内存,并划分针对Spark SQL测试与Spark K-Means测试设置了对例如案(接纳相同的硬件设置和组网方法),两套计划的成内情当,因此可以直观的反应出两套计划的性能价钱比。
图2
首先举行的是 Spark SQL 单机测试(测试效果如图3)与集群测试(测试效果如图4)可以发明,英特尔? 傲腾? 内存计划的单机性能是DRAM计划的7.33倍,集群性能是 DRAM 计划的6.05倍。
图3
图4
接下来九州酷游官网举行了 Spark K-Means单机测试(测试效果如图5)与集群测试(测试效果如图6)。测试效果显示,在单机情形下,英特尔? 傲腾? 内存计划在训练方面的性能是DRAM计划的13.74倍,整体性能是DRAM计划的3.93倍;集群情形下,英特尔? 傲腾? 内存计划在训练方面的性能是DRAM计划的10.76倍,整体性能是 DRAM 计划的3.99倍。
图5
图6
效果:英特尔? 傲腾? 内存显著提升 Spark 计划性能与本钱效益
以上测试显示,在 Spark 系统的构建历程中,若是需要处置惩罚的数据量高于服务器内存资源,那么基于英特尔? 傲腾? 长期内存的设置计划性能将远超 DRAM 内存计划。这是由于凌驾服务器内存池容纳能力的数据会落在低速的磁盘上,从而导致处置惩罚速率的降低,而英特尔? 傲腾? 内存不但可以提供速率靠近 DRAM 内存的快速存储器,并且可支持的内存池总容量远超 DRAM 内存,这能够让 Spark 缓存更多的数据,从而充分验展 Spark 的数据高速处置惩罚优势。
尤为主要的是,英特尔? 傲腾? 内保存单位本钱上显著低于 DRAM 内存,这能够资助企业有用控制Spark 系统的TCO。在大型的 Spark 应用实践中,英特尔? 傲腾? 内存作为内存扩展计划,可以资助企业在牢靠的性能目的下,有用控制服务器节点数目以及内存采购本钱,从而实现性能与本钱效益的平衡。