英特尔??傲腾? 长期内存是Intel在2019年宣布的一款革命性的产品,英特尔??傲腾? 长期内存是一种全新的内存类型,其架构设计旨在从数据中心中罗致更多价值,重构数据中心内存/存储条理结构。差别于古板的DRAM,英特尔??傲腾? 长期内存集大容量、经济性和长期性于一身,能够支持数据中心多个应用场景。九州酷游官网基于英特尔??傲腾? 长期内存做了大宗的应用场景解决计划,笼罩大数据剖析、数据库、云与虚拟化、漫衍式存储等应用场景。为了资助用户通过越发无邪的架构来实现立异型的应用,助力企业实现性能突破,九州酷游官网宣布了基于英特尔??傲腾? 长期内存手艺的HDFS存储计划。
Hadoop是Apache开发的用于可靠,可扩展的漫衍式盘算的开源软件。其不但仅在云盘算领域用途普遍,还可以支持搜索引擎服务,作为搜索引擎底层的基础架构系统,同时在海量数据处置惩罚、数据挖掘、机械学习、科学盘算等领域都越来越受到青睐。HDFS(Hadoop Distributed File Sysytem)作为Hadoop提出的漫衍式文件系统,更是由于其设计简朴、易用性高而被普遍应用。为了资助企业化解由于数据快速增添所泛起的HDFS性能瓶颈,九州酷游官网举行了基于英特尔? 傲腾手艺的 HDFS 性能优化实践,通过将英特尔? 傲腾? 长期内存作为HDFS的集中式缓存,相比于古板的DRAM内存计划,不但大幅提升了数据吞吐性能,并且实现了更高的本钱效益。
挑战:化解HDFS保存的存储性能瓶颈
HDFS虽然被普遍应用,可是关于需要频仍会见文件,或者具有性能SLA(Service-Level Agreement)的混淆事情负载,HDFS仍不可知足高性能的要求。HDFS引入了集中式缓存管理功效,它是一个明确的缓存机制,允许用户指定要缓存的HDFS路径。在HDFS缓存的资助下,高级应用程序可以更轻松地使用群集内存框架,例如Spark,MR,Hive,Pig和Impala。为了加速事情量,这些框架可以明确要求HDFS缓存数据集并妄想使命,并思量DRAM缓存位置。HDFS中NameNode会和生涯着所需数据块的所有DataNode通讯,并指导他们把数据块缓保存Off-heap缓存中。
由于HDFS应对的是超大规模数据集的存储需求,因此数据吞吐性能的主要性不言而喻。要提升HDFS数据吞吐性能,可以从优化内存妄想、存储磁盘扩容和升级、参数调优等多个方面举行。以线上HDFS集群内存妄想为例,内存由OS,HDFS和其他应用程序共享。影响系统内存使用率、IO使用率等资源以及读写性能等,是HDFS性能一个至关主要的影响因素。
可是,要想在控制总体拥有本钱(TCO)的条件下,对HDFS集群内存举行最优妄想并不是一件容易的事情。首先,HDFS集群需要的内存容量是海量且一直扩展的,而每一个存储节点的内存插槽数目、支持内存容量等条件却极大限制了其扩展性,在内存容量增添到一定水平后就会泛起瓶颈。若是要进一步关于内存容量举行扩展,企业在古板上一样平常会接纳两种要领,第一种是使用大容量的单条内存,第二种要领是扩展HDFS存储节点。
可是,这两种要领都不具备优异的本钱效益。关于前者来说,虽然许多HDFS存储节点支持的单条内存容量理论上限是128GB,可是这种大容量的内存普遍处于验证阶段,可获得性缺乏,并且价钱的提升远高于其容量的提升,会带来很高的本钱压力;关于后者来说,扩展HDFS存储节点虽然能够提升内存池的容量,可是这些存储节点的采购、空间占用、运维、供电无疑也会显著抬升本钱。
因此,怎样突破现有存储架构的限制,寻找一种立异的线上HDFS集群内存妄想要领,在显著提升HDFS性能的同时有用控制本钱,也就显得至关主要。
使用英特尔? 傲腾? 长期内存手艺优化内存结构
为相识决此问题,九州酷游官网工程师团队关于HDFS的集中式缓存管理举行了剖析,为了减轻内存资源的压力,长期性内存(PM)被称为存储类内存(SCM),在业界泛起,它不但可以为HDFS提供大容量缓存,挣脱单节点内存巨细的限制,同时还能有用降低本钱。
要将存储介质从内存替换为高性能固态盘,一个主要的条件就是固态盘在IOPS、时延方面与内存不可有太大的差别。在计划验证的历程中九州酷游官网发明,英特尔? 傲腾? 长期内存位于内存和存储介质之间(如图1),能够填补两者间的性能和时延差别,对存储条理模子举行重新划分和界说。因此,九州酷游官网决议使用英特尔? 傲腾? 长期内存作为HDFS的读缓存,并举行性能、本钱等方面的验证。

图1
英特尔??傲腾? 长期内存是一种全新的内存类型,差别于古板的DRAM,其集大容量、经济性和长期性于一身,读写带宽比NVME装备高数倍,并大幅降低延时问题。由于写入方法差别,英特尔??傲腾? 长期内存也比Flash NAND更耐用,并通过高达512GB的单�?槿萘�,实现了远超古板DRAM的系统内存容量。其从基础上改变了数据中心的弹性,将内存数据库重启时间从以前的几天、几小时缩短到现在的几分钟甚至几秒钟,并提供经济实惠的内存空间,将系统内存容量扩展到亘古未有的水平。
英特尔??傲腾? 长期内存拥有两种特殊的运行模式——App Direct 模式和内存模式。详细来看,接纳App Direct 模式,经由专门调试的应用程序可以从产品固有的长期性中充分获取价值,同时获得更大的容量;在内存模式下,在受支持的操作系统或虚拟情形中运行的应用程序可将该产品用于易失性存储,在无需重写软件的情形下,有用使用高达512GB的内存�?榇吹母郊酉低橙萘�,在大型内存池中获得新的洞察。
在现实的计划安排中,九州酷游官网使用了英特尔? 至强? 第二代可扩展处置惩罚器与英特尔??傲腾? 长期内存组成强强组合,取代HDFS中DRAM显示缓存(如图2),改善HDFS 集群内存结构,以支持云、数据库、高性能盘算、内存剖析和内容分发网络等要害数据事情负载。

图2
计划验证:英特尔? 傲腾? 长期内存性能优势显著
为了测试英特尔??傲腾? 长期内存作为HDFS集中式缓存的性能,九州酷游官网决议在总成内情当的情形下,划分测试基于英特尔??傲腾? 长期内存/ DRAM 内存两种设置下的性能比照。
在现实测试中,九州酷游官网将英特尔??傲腾? 长期内存设置为 App Direct运行模式,并依据以下硬件设置来搭建了测试计划(如表1)。测试使用3台服务器,其中一台服务器用于管理节点,安排HDFS NameNode,另外两台服务器作为数据节点,安排HDFS DataNode。

表1
在至关主要的存储方面,英特尔? 傲腾? 长期内存计划中每个数据节点使用192GB(12*16GB)的DRAM,并使用1TB(8*128GB)的英特尔? 傲腾? 长期内存作为HDFS的缓存装备;DRAM计划中使用768GB(24*32GB)内存,两种计划的组网方法如图3。

图3
本次举行了两种场景测试,一种对HDFS举行顺序读和随机读测试;一种在text和parquet两种数据类型下对54个SQL和7个IO敏感型SQL盘问测试。AD模子划分来评测HDFS在英特尔? 傲腾? 长期内存做缓存、DRAM做缓存和无缓存下的读性能。
读写测试中,九州酷游官网划分测试了三种设置在顺序读和随机读下的吞吐量(测试效果如图4)�?梢钥闯�,在SequentialRead测试模子下,英特尔? 傲腾? 长期内存是DRAM的3.11倍,英特尔? 傲腾? 长期内存是NoCache的11.64倍。在RandomRead测试模子下,英特尔? 傲腾? 长期内存是DRAM的7.95倍,英特尔? 傲腾? 长期内存是NoCache的21.33倍。

图4
SQL盘问测试中,九州酷游官网划分测试了三种设置在54个SQL和7个IO敏感型SQL下的盘问时间�?梢钥闯�,在54个SQL盘问测试模子下(测试效果如图5),关于text数据类型,DRAM是英特尔? 傲腾? 长期内存的1.26倍,NoCache是英特尔? 傲腾? 长期内存的1.49倍;关于parquet数据类型,DRAM是英特尔? 傲腾? 长期内存的1.06倍,NoCache是英特尔? 傲腾? 长期内存的1.13倍。在7个IO敏感SQL盘问测试模子下(测试效果如图6),关于text数据类型,DRAM是英特尔? 傲腾? 长期内存的1.7倍,NoCache是英特尔? 傲腾? 长期内存的2.23倍;关于parquet数据类型,DRAM是英特尔? 傲腾? 长期内存的1.16倍,nocache是英特尔? 傲腾? 长期内存的1.22倍。

图5

图6
效果:大幅改善HDFS性能与本钱体现
从测试效果可以看出,在成内情当的情形下,通过将HDFS的读缓存由古板的DRAM内存替换为英特尔??傲腾? 长期内存,可以成倍提升吞吐性能,大幅降低盘问时间。之以是会有云云显著的提升效果,很洪流平上是由于英特尔??傲腾? 长期内存支持的总容量远高于DRAM内存,能够缓存HDFS所有的数据集,而没有缓存驱逐。并且其极高的随机读性能能够知足HDFS随机读需求。
尤为主要的是,若是企业仅需要抵达牢靠的性能,那么使用英特尔??傲腾? 长期内存将带来极大的本钱节约,这在目今企业数据爆发式增添、在大数据方面的投入逐渐增大的配景下,显然具有主要意义。