联通沃云虚拟机扩展内存技术的方法验证研究
通信产业网|2017-11-14 14:46:35
作者:孟璞辉 高丰来源:通信产业网

【通信产业网讯】科技的创新,带来新的应用创新。随着云计算产业与信息系统的快速发展,以及新一代服务器计算能力的不断提升,业务应用对于云计算提供的内存资源的需求愈加巨大,传统的内存超分技术已经难以在平衡成本的同时,提供满足业务需求的内存资源。文章基于这一需求,采用Intel Memory Drive Technology (IMDT)扩展内存技术,配合Intel Optane系列SSD产品,应用在联通沃云云计算场景中。在平衡成本的同时,得到了满足业务需求的性能指标。综合测算,在沃云的大内存型虚机产品中,该方式可使单台服务器节约$2060。

研究背景

在云场景下,由于虚拟机的内存占用机制,其内存资源一旦分配,就会被虚拟机操作系统持续占用,即使该虚拟机大量内存资源空闲,被占用的宿主机内存资源也无法被其他虚拟机利用,造成资源池内存资源不足。

针对以上实际生产中的问题,传统的解决方法一般不外呼两种,一种是简答粗暴的增加服务器的内存配比,通过加大内存的方式解决内存不足的问题。第二种方法是通过swap的方式,将部分内存保存在硬盘上,缓解内存不足的压力。

其中方法一,自然是简单有效,并且没有任何风险隐患。然而目前市面上DIM内存普遍价格在$10/GB,高昂的成本对于陷入红海的云计算从业者们更感到雪上加霜,难以接受。

而通过swap的方式解决内存问题则很不可靠。由于linux本身的内存优化机制,还有硬盘本身的性能所限,当应用直接访问swap内的资源时,往往会对应用造成极大的不利影响。

最新的Linux kernel 都支持内存超分(memory overcommit),KVM还可以对相同类型的虚机利用KSM(Kernel same-page merging)合并完全一致的内存页表。但当部署密度较大时,随着活跃的内存页表增加,仍然容易出现swap发生,从而引起前文提到的应用程序被强制中断或者运行异常

在云场景中,虚机内部应用访问到swap资源,造成应用崩溃,进而影响到虚机的稳定性。而当希望重新创建一个新的虚机接替原有的虚机时,本地内存资源仍然在被占用,而新虚机被迫在swap上创建内存,造成新虚机创建失败。这种负面的连锁效应对于整个云计算系统而言是灾难性的。

Optane系列产品作为intel新推出的SSD产品线,采用了创新性的3D Xpoint存储介质,从基础材料上改变了传统NAND SSD的存储特性。其拥有更高的随机写性能,更低的访问延时,和高达30 DWPD(Drive Write Per Day)的耐用性。

Intel Memory Drive Technology (IMDT)是一种全新的扩展内存技术,利用Optane产品的优良特性,以及高效的内存预取算法,可以将Optane 系列SSD产品作为现有DRAM内存的扩充,从而为用户提供一种经济的大内存解决方案。而且这种内存扩展技术,对OS和应用/虚机而言是透明的,也就是不用修改OS内核,软件接口等。对于支持的平台,用户的软件堆栈将可以平滑迁移,提高解决方案上线的效率。

本项目就是针对其IMDT功能在云场景下的应用做出的验证性测试工作。本次实验中的Optane系列SSD产品通过PCIE 3.0接口与服务器相连,以扩展内存的形式为云服务器提供内存资源。

二、 测试环境

在本次测试工作中,我们尝试通过采用Optane来扩展内存,解决内存不足问题。

我们首先在实验室搭建了通沃云生产环境一致的测试环境,宿主机采用的是Dell R730服务器,其处理器为Intel的至强 E5-2650 v4,双路12核,总计48线程。内存采用的是128GB DDR 4内存。硬盘为 SATA SSD。BIOS启动配置修改UEFI:on。宿主机的操作系统为Centos7.1。虚拟机的操作系统是红帽7.3,QEMU为1.5.3版本。IMDT版本为8_2_1455_29。Optane型号为Intel_SSD_DC_P4800X 375GB。

三、 测试场景

(一) 对照场景

在对照场景中,我们在没有Optane的情况下,模拟正常的云业务。根据我们实际业务场景,测试采用占比较多的通用计算型虚拟机,其规格为4核16GB。

由于128GB内存的限制,我们依照顺序在宿主机上启动了7台虚拟机,在全部虚拟机启动,并且占用了全部内存资源的时候,内存分配达到112GB,处理器占用28线程。此时内存分配已接近资源极限,在VM 启动时利用linux自带工具free可观察到这一现象。

每台虚拟机内部通过stream内存测试软件,通过CPU对数据块执行add(加法),copy(复制),scale(乘法)及triadd(前三种操作合一)操作,得到内存的IO带宽和延迟数据。通过设定参数,虚机的活跃内存为8GB,占比为50%,总活跃内存为56GB。

1.1 测试流程

在测试过程中,7台虚机并不是同时启动,而是根据时序,逐台启动。这样我们可以获得宿主机在不同负载的情况下,内部虚拟机的内存性能曲线。

每个时序启动一台vm,每个时序内,启动的每台vm执行3次stream内存测试。

1.2 测试结果

带宽:单vm时平均带宽最大,可达到33GB/s(triad操作),随启动虚机数量增长逐步下降,7台虚机启动时,单vm平均带宽19GB/s(triad操作),全部7台vm总带宽达到133GB/s(triad操作)。

1.2.png

图1 对照场景单虚机内存带宽图

时延:单vm时时延最低,为2.88ns(triad操作),随启动虚机数量增长逐步增长,7台虚机启动时,单vm平均时延5.586ns(triad操作),全部7台vm最大时延9.41ns(triad操作)。

1.3 结果分析

结果显示,当宿主机只有少量虚机活跃的情况下,每台虚机可以获得最优的内存性能。其单台虚机的内存带宽达到33GB/s(triadd操作),延迟为2.88ns(triadd操作)。而随活跃虚机的增加,宿主机上全部虚机的整体内存带宽仍在不断增加,但是对于单台虚机来说,其内存带宽已经受到影响而逐渐降低,而延迟也随之升高。在全部7台虚机全部启动,并活跃工作的时候,宿主机整体内存带宽为133GB/s(triadd操作),单虚机平均带宽为19GB/s(triadd操作),单虚机平均时延为5.586ns(triadd操作),最大时延为9.41ns(triadd操作)。此时,宿主机上活跃内存总量为56GB,分配值为112GB。

可以看到,即使是全部采用真实DRAM内存,宿主机的总内存带宽是存在一个比较明显且容易触及的极限。在全部虚机负载都较大的时候,各虚机共享宿主机的内存带宽,存在资源抢占,并且对于单个虚拟机,单个虚拟机内应用,内存性能存在较大的波动性(延迟从6.64ns到9.41ns)。

(二) 标准测试场景

在标准测试场景中,我们增加了Optane作为扩展内存,模拟云业务。虚拟机的规格上,测试依然采用占比较多的通用计算型虚拟机,规格为4核16GB。

在通过Optane扩展内存时,我们按照其1:2的推荐比例使用。由于之前宿主机上是128GB的DIM内存,通过Optane获得了额外217GB实际可用的内存资源,此时在宿主机上已经可以看到内存资源扩展到了342GB。我们依照顺序在宿主机上启动了11台虚拟机,在全部虚拟机启动,并且占用了全部内存资源的时候,内存分配达到176GB,处理器占用44线程。此时处理器已接近资源极限。

每台虚拟机内部仍然通过stream内存测试软件,通过CPU对数据块执行add,copy,scale及triadd操作,得到内存带宽和延迟数据。通过设定参数,虚机的活跃内存为8GB,占比为50%,活跃内存达到88GB。由于stream软件的特性,在测试过程中,不论实际的活跃内存大小是多少,stream应用都会完全占用处理器线程的计算资源。因此在场景2中,虚拟机数量被处理能力限制在了11台的规模(44/48线程)。

相较于对照场景,通过采用Optane扩展内存,使得我们可以在同样的宿主机上多启动了4虚拟机,增幅60%。在实际生产中,考虑到应用往往不会完全占用计算资源,所以在实际生产中还有更大提升潜力。

2.1 测试流程

在测试过程中,11台虚机根据时序,逐台启动。这样我们可以获得宿主机在不同负载的情况下,内部虚拟机的内存性能曲线,并方便与对照场景做对比。

每个时序启动一台vm,每个时序内,启动的每台vm执行10次stream内存测试。

2.2 测试结果

带宽:单vm时平均带宽最大,可达到33GB/s(triad操作),随启动虚机数量增长逐步下降,11台虚机启动时,单vm平均带宽13GB/s(triad操作),全部11台vm总带宽达到147GB/s(triad操作)。

2.png

图2 标准测试单虚机内存带宽图

时延:单vm时时延最低,为2.94ns(triad操作),随启动虚机数量增长逐步增长,11台虚机启动时,单vm平均时延8.539ns(triad操作),全部7台vm最大时延16.26ns(triad操作)。

3.png

图3 标准测试单虚机最大内存时延图

2.3 结果分析

结果显示出与对照场景类似的趋势,即当宿主机只有少量虚机活跃的情况下,每台虚机可以获得最优的内存性能,而随启动的虚机增加,总体性能逼近宿主机极限,所有虚机则共享宿主机资源。

标准测试场景中,其单台虚机的内存带宽最大带宽达到33GB/s(triadd操作),最低延迟为2.94ns(triadd操作),出现在第一时序内,此时只有1台虚拟机启动工作,负载最低。该结果可以认为等同于场景1的结果,其偏差完全在正常波动之内。这说明,Optane在内存调用的优化,使得系统可以优先使用真实DRAM内存,保证应用在真实DRAM内存充足的时候不会受到任何影响。

在而随活跃虚机的增加,整体趋势与场景1基本一致,即使分配内存值超过真实DRAM大小,测试结果仍然没有出现内存带宽的剧烈波动。在全部11台虚机全部启动,并活跃工作的时候,宿主机整体内存带宽为147GB/s(triadd操作),单虚机平均带宽为13GB/s(triadd操作),单虚机平均时延为8.539ns(triadd操作),最大时延为16.26ns(triadd操作)。此时,宿主机上活跃内存总量为88GB,分配值为176GB。由于此时虽然宿主机上分配给虚机的总内存大小已经超过了128GB,但活跃内存仍然小于真实DRAM大小,这反映出Optane在针对内存的活跃度,对内存资源进行了有效资源分类,并通过算法优化了内存的地址的映射算法,保证应用性能。

(三) 大负载测试场景

在大负载测试场景中,我们在标准测试场景的基础上,增加了虚机内应用的负载,将活跃内存率推高至80%。虚拟机的规格上,测试依然采用占比较多的通用计算型虚拟机,规格为4核16GB。

大负载测试场景作为标准测试场景的扩展实验,虚机数量依然为11台,并且采取同时启动的方式,直接将应用负载推到预定值。此时宿主机上,通过Optane获得了额外217GB实际可用的内存资源,宿主机上已经可以看到内存资源扩展到了342GB。同时处理器负载为44/48线程,内存为176G分配,143GB活跃内存。虚拟机中为4/4线程满负载,内存为13GB/16GB(活跃/总计)。此时活跃内存数也超过了真实DRAM内存的大小。

3.1 测试流程

一次性启动全部11台vm,执行2次stream内存测试。

3.2 测试结果

带宽: 11台虚机在活跃内存达到80%时,单vm平均带宽15GB/s(triad操作),全部11台vm总带宽达到168GB/s(triad操作)。

4.png

图4 大负载场景单虚机内存带宽图

时延:11台虚机在活跃内存达到80%时,单vm平均时延达到12.63ns(triad操作),全部11台vm最大时延为24.66ns(triad操作)。

5.png

图5 大负载场景下单虚机内存时延图

3.3 结果分析

测试结果看到,其延迟有较大增长,平均时延达到12.63ns,最大时延达到24.66ns。较之前标准测试场景有较大增长。

最大24.66ns的结果,相较于测试中最优的2.88ns而言,劣化了接近10倍。虽然仍需结合具体应用,但是考虑到普遍的应用系统场景,其中网络,计算等其他因素造成的延迟,我们认为在内存上的100ns以内的延迟,仍属于可以接受的范围。

(四) 大内存虚机测试场景

在大内存虚机测试场景中,我们仍然采用Optane扩展内存,实现了342GB的内存容量,但是更改了虚拟机的规格。考虑到目前出现了大量高内存型虚机需求(计算内存比1:8),测试依然采用了新的大内存型虚拟机,规格为2核16GB。

每台虚拟机内部仍然通过stream内存测试软件,通过CPU对数据块执行add,copy,scale及triadd操作,得到内存带宽和延迟数据。通过设定参数,虚机的活跃内存仍为8GB,占比保持为50%。

在虚机数量上,我们选择了18台作为本场景中虚拟机数量。此时宿主机上处理器分配资源达到32线程,分配内存值为288GB,活跃内存值为144GB。

4.1 测试流程

在测试过程中,18台虚机根据时序,逐台启动。这样我们可以获得宿主机在不同负载的情况下,内部虚拟机的内存性能曲线,并方便与对照场景、标准测试场景做对比。

每个时序启动一台vm,每个时序内,启动的每台vm执行1次stream内存测试。

4.2 测试结果

带宽:单vm时带宽最大,可达到17GB/s(triad操作),随启动虚机数量增长逐步下降,18台虚机启动时,单vm平均带宽9GB/s(triad操作),全部18台vm总带宽达到169GB/s(triad操作)。

6.png

图6 大内存场景单虚机内存带宽图

时延:单vm时时延最低,为5.72ns(triad操作),随启动虚机数量增长逐步增长,18台虚机启动时,单vm平均时延11.52ns(triad操作),全部18台vm最大时延22.57ns(triad操作)。

7.png

图7 大内存场景单虚机内存时延图

4.3 结果分析

在测试过程中,18台虚机根据时序,逐台启动。这样我们可以获得宿主机在不同负载的情况下,内部虚拟机的内存性能曲线,并方便与对照场景、标准测试场景做对比。

测试结果显示单虚拟机时带宽最大,可达到17GB/s(triad操作),随启动虚机数量增长逐步下降,18台虚机启动时,单虚拟机平均带宽9GB/s(triad操作),全部18台虚拟机总带宽达到169GB/s(triad操作)。在时延方面,单虚拟机时时延最低,为5.72ns(triad操作),随启动虚机数量增长逐步增长,18台虚机启动时,单虚拟机平均时延11.52ns(triad操作),全部18台虚拟机最大时延22.57ns(triad操作)。

该同大负载测试场景相比,活跃内存值相当,分配内存则接近扩充后的总内存极限,为全部场景中,对于宿主机压力最大的一种场景。通过Optane扩展内存,实现了18台大内存型虚机在50%活跃内存的场景下正常工作。其时延、带宽性能也与大负载测试场景类似,这一结果无疑是令人鼓舞的。

(五) Swap方式对照场景

在该场景中,首先移除Optane , 配置swap扩展内存。之后先启动7台vm,将宿主机上的内存占用至112GB。之后尝试启动vm8,使内存占用达到128GB的极限,尝试验证在使用swap的场景下,vm的IO状况和应用的健康情况。

虚机的规格上采用了标准的4核16GB的配置。

虚机内同样执行stream测试脚本。

5.1 测试流程

首先启动7台vm,待宿主机内存完全分配给虚拟机,内存配置值达到112GB后,启动vm8。

5.2 测试结果

带宽: 前7台虚机启动的时候,总带宽达到138GB/s,单台虚拟机带宽达到19GB/s。vm8启动的时候,各虚拟机状态出现不稳定,无法得出正常数据。

8.png

图8 Swap场景下单虚机内存带宽图

时延:7台虚机启动的时候,平均延迟6.125ns。vm8启动的时候,各虚拟机状态出现不稳定,无法得到稳定数据,记录最大延迟达到18.51ns。

9.png

图9 Swap 场景单虚机内存时延图

5.3 结果分析

前7台vm稳定工作后,启动vm8后,全部虚机都出现不稳定状态。图-10 显示出虚机健康状况随测试变化情况。

10.png

图10 Swap场景虚机健康图

其中绿色代表虚机工作正常,浅绿色代表虚机进入不稳定状态,红色代表虚机内stream应用崩溃。可见在vm8在时序1启动并执行内存测试脚本后,仅有3台虚机仍正常工作,vm2程序崩溃,其余4台vm进入不稳定状态。之后更多虚机内应用崩溃,最终只有vm1仍保持正常。

实验显示,在采用swap方式扩展内存的时候,在内存活跃度达到50%的时候,就会造成应用因内存不足而崩溃。

Swap方式对照场景的测试结果,再次证明了在云计算业务下,如果只利用普通的memory commit技术,配合swap方式扩展内存的实际风险。在负载压力增加时,将造成整体系统高度不稳定,甚至虚机崩溃,不推荐在生产环境中商用。

四、 结束语

本次测试项目中,我们成功的使用Optane为云服务场景中的宿主机扩展了内存,并且通过该服务器正常生成了指定数量的虚拟机,提供了可行的云服务。通过在云服务场景内引入Optane,并使用其内存扩展功能,解决了我们之前遇到的宿主机内存不足的问题。并且相较于其他解决方案,体现出了IO性能、可用性、价格上的优势。

标1.png

表1总结了本次测试的环境及主要结果:

通过本次测试工作,用数据验证了Optane在11/18台活跃虚拟机场景下的内存性能特征,而这一虚机数量并非IMDT技术的极限。根据实际应用的内存性能需求,并通过优化处理器及内存比例后,虚拟化比例完全可以进一步上升。

Swap测试场景的结果证明了该方式在云环境下的缺陷,而相较于真正的DRAM内存,optane的价格占有优势。目前市场上optane系列内存的价格在$4/GB,是DRAM内存的36%(179$/16GB【】)。在使用optane扩展内存的时候,建议按照不超过1:2的比例配置,即1GB的DIM内存,副以2GB的optane。目前optane系列产品规格为375G,即我们可以通过配置192GB的DIM内存,加上1块375GB的optane卡,达到512GB内存的需求,其价格为传统的64%,单台服务器节约$2060。

正如开篇所说,新技术的涌现,总能为应用找到新的模式、场景和机遇。在本次测试和研究的开展过程中,英特尔又发布了最新一代的至强可扩展处理器,它更强的单核和整体性能,不但能使单台物理服务器更容易支持,或者说是整合更多数量的虚拟机(据英特尔的测试,它支持的虚拟机数量可比上一代产品提升20%),而且还可借助VMD (Volume Management Device)和VROC(Virtual RAID on Chip)技术,更为灵活地部署、更加便利地管理optane,并有望更充分地释放其3D XPoint技术的性能潜力,而这或许也意味着虚拟机的内存扩展,将会迎来更大的弹性和更高的极限。

基于这样的考虑,我们正考虑在接下来的工作中,在配备至强可扩展处理器的服务器平台上,通过Optane做更多的应用层的验证,如验证在沃云平台虚拟化环境中,Optane 作为SWAP 盘的性能特性研究、以及作为内存数据库应用的性能特性研究等。希望这些尝试,能将新的科技迅速转化为新的应用和新的收获。

0

责任编辑:康嘉林

【欢迎关注通信产业网官方微信(微信号:通信产业网)】

版权声明:凡来源标注有“通信产业报”或“通信产业网”字样的文章,凡标注有“通信产业网”或者“www.ccidcom.com”字样的图片版权均属通信产业报社,未经书面授权,任何人不得复制、摘编等用于商业用途。如需转载,请注明出处“通信产业网”。

发表评论
合作伙伴
换一个
还不是通信产业报会员,立刻注册
×