Spark的内存重删优化

来源 :第 23 届全国信息存储技术学术会议 | 被引量 : 0次 | 上传用户:qq3248893
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  Spark是类似于MapReduce的通用并行计算框架,它拥有MapReduce的所有优点.不同的是Spark将中间结果缓存到内存,减少了磁盘的读写次数,正因如此,Spark能更高效地支持迭代运算.虽然Spark的缓存策略提升了系统性能,但缓存中间数据会占用更多的内存空间,在内存受限时,这会造成数据在磁盘与内存之间大量的换入换出,反而降低系统性能.我们发现Spark缓存的中间数据通常存在很大的相似性和关联性,比如在Spark应用的迭代过程中会不断产生局部收敛现象,局部收敛过程中新产生的RDD(Resilient Distributed Datasets)与它们的父RDD之间包含着大量的重复数据.删除这些重复数据可以提高Spark的内存使用率,提升系统的性能.KSM(kernel Samepage Merging)是Linux内核中的内存重删技术,它通过操作稳定树和不稳定树来对比页面实现重删.然而KSM并不能直接应用于Spark,一方面是由于KSM只扫描具有MADV_MERGEABLE标记的匿名内存区域,而Spark应用运行在JVM中,它的内存不带有MADV_MERGEABLE标记;另一方面,将KSM应用于Spark后,由于KSM算法效率较低并且需要处理的页面数量较多,导致重删进程的CPU占用量高,重删效率低.针对上述问题,本文设计的Counting-Bloom-Filter-Based KSM(CBF-KSM)采用如下解决方案:第一,修改内核中内存分配模块,在内核为进程分配内存空间时直接把该区域标记为MADV_MERGEABLE,这样,Spark运行时占用的内存空间就会带有MADV_MERGEABLE标记,该区域即可由KSM进行重删.第二,采用Counting Bloom Filter(CBF)算法对KSM改进.CBF算法在KSM重删之前先对页面进行过滤,过滤规则是:当且仅当CBF算法发现存在与当前页面重复的页后,才允许该页进入KSM.具体操作方法如下:首先CBF算法利用多个hash函数将每个页面映射到CBF数组的多个位置,当发现某两个页面映射后的位置完全相同时,才允许它们进入KSM中执行重删;否则等待下次处理.这样的做法将大量的不重复页面隔离在KSM之外,减轻了KSM的处理负担,提高了重删效率.CBF-KSM的功能流程如图1所示,图1中Scanner模块负责对内存区域做MADV_MERGEABLE标记,CBF模块发现内容重复的页,KSM模块对内容重复的页执行重删,而未发现重复的页则等待下次处理.实验表明,在浪潮英信NP5540M3服务器、KSM配置参数为sleep_millises=20,pages_to_scan=1024环境下,CBF-KSM重删进程的平均CPU占用量由KSM的20%降低到13%,提高了重删效率.采用CBF-KSM后,Spark典型应用的内存使用量降低了10%~20%,内存使用率得到了提高.在内存受限时,CBF-KSM通过节省内存空间,减少磁盘IO,最高能将Spark应用的性能提升47%.
其他文献
随着物联网、移动互联网、社交网络等一系列新兴技术和应用方式的出现,人们对海量数据实时存储、处理的需求不断增加.分布式消息系统由于其解藕数据收集与处理系统、良好的性能和扩展性被广泛使用.基于对分布式消息系统的广泛需求,一大批消息系统被开发发布,其中包括LinkedIn 2011年推出的Kafka,Twitter 2016年5月开源的DistributedLog,Yahoo!2016年9月开源的的Pu
近年来,随着云计算和大数据技术的相继涌现,数据中心在规模上和数量上都出现了跨越式的增长,能源消耗进一步加剧.能源成本的增长和环境问题的日益突出使得数据中心面临严峻挑战,引进经济环保的新能源已经迫在眉睫.太阳能和风能是目前最具前景的两种新能源,不仅获取方式简单,在全球大部分地区广泛存在,而且环保无污染,但是新能源的间歇性、不稳定性和突变性等特点,导致数据中心无法有效适应新能源.为此,各大数据中心开始
云计算依靠自身优秀的性能,灵活的扩展性,低廉的价格吸引着国内外企业将自身的业务迁移到云上.但是随着云上企业数量增多、任务种类增多、性能特征变复杂,用户很难在运行成本与服务需求的平衡中实现最优,所以用户为了简化操作申请过多的资源,造成了使用成本增加.许多典型的解决资源利用率低下的问题,都是从云提供商的角度优化放置算法,而用户选择将限制资源利用率增加;也有一些方法通过在云平台下的任务性能短时间采集并预
本文首先基于Landau Khalatnikov理论通过使用BSIM4模型来对NC-FeFETs进行建模,分析NC-FeFETs具有的栅极电压放大作用.之后考虑到阻尼常数对器件性能的影响,设置阻尼常数为主要变量,引入了基于反相器的延迟测试、功耗测试以及再生性测试,将得到的结果与相同条件下的MOSFETs进行对比,当阻尼常数为0.0001Ω·m时,NC-FeFETs在延时上与MOSFETs相当,并且
NVMe全称Non-Volatile Memory Express,非易失性存储器标准,是PCI-E SSD的一种规范。命名空间管理是最新NVMe规范中的一个固件功能,本文在基于PCI-E SSD的测试平台上设计和实现了命名空间的创建和删除算法,使得一个固态盘可以当做若干个固态盘使用;还实现了设备端的命令处理流程,可以通过命令分发、命令解析、命令数据传输等任务去处理在设备端的命令,最后根据NVMe
随着云计算和移动互联网的发展,前端的设备提供服务入口,而大量的数据存储和处理任务需要在后台的数据中心完成,数据中心成为云计算时代最重要的基础设施。与之相对应的是,企业级数据中心的规模越来越大,数据中心的自动化运营和维护所面临的挑战也越来越大。除了软、硬件故障以外,服务器的磁盘使用过高是数据中心运维中最常见的问题之一,且经常发生于系统负载最高的时候,严重伤害用户体验。通常对于服务器的运行情况等信息有
图作为一种重要的数据结构,广泛应用于社会各个领域,如最优运输路线、科技文献引用关系、数据挖掘、蛋白质分解、语义网分析等应用问题.随着人类社会信息化程度的提高,伴随这些领域产生的图数据量也在以爆炸式的速度增长.来自各类应用的图数据规模与日俱增,常规计算机难以一次性将数据全部从外存载入内存进行处理,只能在处理过程中对存储在低速、大容量外存中的数据进行多次访问,由此造成图数据频繁地在高速和低速存储设备上
随着当今的社交网络的快速发展,越来越多的图像被上传到云端.这些图像种类丰富多样,并且往往存在大量相似以及冗余.相似图像每时每刻都在产生,如连拍、游客在同一个景点拍摄的照片、不同人对同一物体或场景所拍摄的照片等.然而目前的图像编码算法如JPEG、JPEG 2000、JPEG XR等均只考虑图像像素间或者区块之间的相似性,忽视了图像之间内容上的冗余.与此同时,硬件的发展速度难以满足人们日益增长的存储需
二十一世纪以来,随着信息全球化的发展和电子商务、社交网络等新兴网络应用的普及,各领域都出现了数据爆炸的现象.KPCB的报告显示,目前全球网民总数已达24亿,Facebook每天处理25亿条内容,超过500TB数据,而twitter每天产生2亿条信息.在国内,2013年中国产生的数据总量超过0.8ZB,是2012年的两倍,相当于2009年全球的数据总量.数据的爆炸式增长使得分布式文件系统逐渐代替本地
近年来随着云计算、大数据技术的飞速发展,人们对数据存储能力、计算能力的需求呈现爆炸式增长,依靠传统的存储系统已经完全不能满足要求.高效的存储和计算能力成为当下面临的挑战.因此大量的分布式存储系统应运而生逐渐成为主流的存储和计算平台,如:GFS、MooseFS、Ceph、GlusterFS等等,分布式存储系统在数据分布均衡和系统容错方面的发展已经相对成熟,然而存储和计算之间的性能差距不断的扩大,在面