时间:2024-07-28
王淑玲,冯伟斌,房秉毅(中国联通研究院,北京100032)
计算机工艺的进步和发展推动着CPU 计算能力的提升,摩尔定律指出:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18 个月便会增加一倍,性能也将提升一倍。计算机能力的快速提升很快超过了上层业务的应用所需,使得计算资源无法得到有效利用。虚拟化技术很好地解决了这一问题。虚拟化技术能够针对业务的个性化需求,高效组织计算资源,隔离具体的硬件体系结构和软件系统之间的紧密关系,在动态环境中构建按需的计算系统虚拟映像,为业务提供相互隔离的基础资源环境,有效地实现了单一物理机上的资源共享,提升了计算资源的使用效率,发挥计算资源的聚合性能,为用户提供高效、透明、安全、普适的服务。在云计算时代,资源和能力的集中为虚拟化技术的发展提供了良好的应用基础。因此,随着云服务在各企业的推广及应用,服务器虚拟化成为了当下的主流技术。
然而,虚拟化技术在服务器中的广泛部署使得服务器能力的评测出现了较大问题。一方面,测试工具的缺失使得服务器虚拟化性能评测没有一个被广泛认可的测试指标。传统的服务器性能评测基本上是从业务出发,针对服务器上线后将承载的业务类型,选择合适的测试工具或测试指标,如Linpack、SPECWeb、TPC-C 等。在虚拟化服务器上,用户在虚拟机中运行什么类型的业务、虚拟机之间的业务交互、虚拟机之间的资源协调等问题都涉及到服务器系统的整体设计,传统的测试工具不具备评测服务器整体性能的能力。另一方面,虚拟化的资源聚合使得服务器资源使用情况动态变化,传统的测试工具无法很好地模拟出虚拟化服务器中的这种动态变化模式。在虚拟化服务器上,资源的动态变化是各类虚拟机业务聚合后的效果,其特征与虚拟机本身、虚拟机与虚拟机之间的相互作用等都密不可分。因此,虚拟服务器上资源的变化特征是一个复杂的问题,而这又直接影响测试工具压力模式、评估模式等的设计。
本文结合服务器虚拟化性能测试的需求和特征,提出了服务器虚拟化性能测试架构,分析服务器虚拟化性能评测的关键要素,最后给出了虚拟化性能评测建议。
服务器虚拟化性能评测以评估服务器支撑虚拟化的能力为主要目标。在提供虚拟化的业务时,用户根据实际的业务特征,向云服务提供者申请所需的虚拟机资源。对于云服务提供商来说,需要在保证单个虚拟机性能的同时,尽可能多地提供虚拟机。为此,衡量服务器的虚拟化性能可从2个方面来衡量。
a)单台物理服务器能够虚拟出的虚拟机数量。
b)虚拟出的虚拟机能力。
为了不影响服务器虚拟化性能测试的公平性,以提供一个合理的测试结果,服务器虚拟化性能评测需采用控制和测试分离的结构。测试控制端主要负责测试流程的控制、测试压力生成及加载、测试数据的收集等。在被测的服务器上,一般包括一个宿主机以及多个虚拟机,宿主机和虚拟机的性能是服务器虚拟化能力评估的主要参考依据。
服务器虚拟化性能测试系统的架构如图1所示。
图1 服务器虚拟化性能测试系统架构
控制端以控制中心为核心,集成了测试策略配置、VM模板配置、数据收集、数据分析模块。
策略配置模块定义了测试过程中的各类参数,包括测试压力策略、VM的数量、VM间的访问方式等。
VM 模板配置依据业务类型,定义了各类虚拟机的软硬件配置,如Web 类虚拟机、文件服务类虚拟机等,是统一测试环境的必备条件。被测设备(SUT)根据该模块定义的模板添加或删除虚拟机。
数据收集模块能够监控测试过程中VM和Host的资源使用情况,数据分析模块读取数据收集模块收集的数据,按照用户要求的方式提供测试结果、生成图表等。
服务器虚拟化性能评测系统的过程为:首先,用户通过用户访问接口,配置虚拟机模板参数和测试参数,并触发控制中心;其次,控制中心启动后,将按照用户的配置,生成相应的压力模式,并将这些压力相应地加载至虚拟机中,同时控制中心会指使VM 上报相应的监控数据至数据收集模块;最后,数据分析模块读取数据收集模块的数据,按照用户要求提供测试结果、生成图表等。
目前,IaaS 服务提供商给用户提供满足其需求的虚拟机,并不关心用户在虚拟机部署何种业务。因此,服务器承载的业务并不确定。在服务器的虚拟化性能评测中需充分考虑到这一特征,因而虚拟化性能评测也有别于传统的服务器测试。
为了给业内提供一个有公信力的评测标准,SPEC组织推出了SPECvirt_sc2010测试程序,这是第一个支持多虚拟化平台、评价使用在虚拟化服务器整合场景中的数据中心服务器性能的基准程序。该基准通过在单一的服务器上加载一些典型的应用,以使得服务器的计算资源、网络、磁盘等系统资源得到有效、均衡的利用。SPECvirt将邮件、java应用、Web、数据库、文件、空闲虚拟机这六类服务器的常用工作量同时运行在单独的虚拟机上,每个工作量是一个单一的系统运行基准,称为tile,运行时产生的多种tile得分的综合就可以得到整个系统的基准评分,从而以此有效评估系统对于虚拟化的支持能力。该基准的提出给业内服务器虚拟化性能的评测提供了一个标准,在业内成为虚拟化性能评测的一个主流标准。目前,该基准程序的版本是SPECvirt-SC2013,是在SPECvirt-SC2010 的基础上修改了测试程序等的压力模型而形成的。
本章将以SPECvirt-SC2013 为研究对象,探讨服务器虚拟化性能测试中的一些关键要素。
系统评测模型需针对不同的应用场景设计,兼顾评测过程中的可用性、易用性和实用性。系统评测模型反映了测试过程中,服务器加压模式的变化特征,需能够较为真实地反映用户使用服务器的各种行为的特征,包括了各类操作发生的概率、分布规律等,是整个评测过程中的理论基础。如Web 服务类的应用场景下,系统评测模型需能够反映系统的并发数、用户浏览、下载、刷新等行为动作的发生概率、用户在页面停留的时间、新增用户到来服从的概率分布等。
在SPECvirt-SC2013 中,系统评测模型建立在用户数量基本稳定的基础上,采用一定的概率和分布模式来模拟用户的行为特征,从而评测在有波动的情况下,服务器的虚拟化性能。本节以Web 和java 类应用为例,说明SPECvirt-SC2013的系统评测模型。
对于Web 服务,其对应的测试基准程序为SPEC⁃web2005,模拟了2 500 个并发的https 访问链接,访问模式服从zipf分布。
对于java 类应用,其对应的测试基准测试程序为SPECjAppServer2004,模拟了一个售卖汽车网站的行为以及这些行为引发的数据库的操作。在此基准测试程序中,并发量由图2 所示的曲线控制。在图2 所示的曲线上描述了30 个点,每个点代表了一定的并发量,即访问用户数。在测试程序开始时,每个tile 的app 类应用选定该曲线上的一个点,并以该点的压力运行40 s,随后,再以下一个点代表的压力运行40 s。SPECjAppServer2004 要求相邻的2 个tile 选择的点的步长为7,也即若tile1 选择了第0 个点,则tile2 选择第7个点,以此类推。步长和运行时间分别由stepRate和startPointMultiplier来控制。
性能评价标准是决定服务器性能优劣的依据。性能评价标准包括了性能评价指标、性能评价指标的计算方法等,需要遵循公平性、易用性的原则。性能评价指标可以在测试过程收集并记录,也可通过对测试中记录的数据进行适当的数学运算后得到,可分为稳态性能指标和非稳态性能指标。
SPECvirt-sc2013定义了3类评价指标:SPECvirtsc2013、SPECvirt_sc2013_PPW、SPECvirt_sc2013_SerrverPPW。
图2 SPECjAppServer2004压力模式曲线
2.2.1 S PEC virt-sc2013
式中:
pij——第i 个tile 中运行第j 个基准测试程序的虚拟机的实际性能值
TMPj——第j 个基准测试程序的性能理论最大值,j=0,1,2 时,分别对应 着SPECjAppServer2004、SPECweb2005、SPECimap(SPECbatch 的结果不纳入性能评测)
相应地,pij定义如下:
2.2.2 S PEC virt_sc2013_PPW 和S PEC virt_sc2013_S erverPPW
SPECvirt_sc2013_PPW 和SPECvirt_sc2013_Server PPW均考虑了测试环境中的能耗,其定义如下:
两者表征的意义为每瓦特的性能,这2 个指标对于关注数据中心能耗的企业有较大的参考性。两者的差别在于SPECvirt_sc2013_PPW 记录的能耗值包括了被测设备以及测试环境中的存储设备的能耗,而SPECvirt_sc2013_ServerPPW 记录的能耗值仅为被测服务器的能耗。
服务器虚拟化性能测试的目的是:测试不同品牌的服务器在相同环境下对虚拟化的支撑能力。这种能力可以从2 个维度衡量,一是服务器最大能支撑的虚拟机的数量,二是虚拟机自身的性能。因此,在评测服务器虚拟化性能时需要遵循以下原则。
a)测试环境一致。包括虚拟机的模板、被测服务器配置、测试环境中的其他服务器配置一致等。
b)保证性能瓶颈在被测服务器上,而不是在测试环境中。在服务器评测的过程中,除了被测服务器,测试环境中还包括压力服务器、存储设备、网络设备等,为了保证服务器性能测试结果的可参考性,需要提升测试环境中其他设备的性能,使得性能瓶颈在被测服务器上。
c)虚拟机模板一致。服务器虚拟化性能测试需要在服务器上启动一系列的虚拟机,在后续的性能评估过程中,通过单个虚拟机的性能来衡量服务器的性能。因此,需保证虚拟机模板一致,包括虚拟机占用的vcpu、内存、网络配置等,同时还包括虚拟机的软件环境,如操作系统、java环境等。
d)调优原则一致。服务器虚拟化性能测试是对测试系统综合性能的评测,物理服务器的配置、虚拟化平台、虚拟机模板配置等都会极大地影响最后的结果。因此,在测试开始前,需要明确允许调优的范围,以保证最后结果的可比性。
随着x86服务器的不断发展,x86服务器在总体拥有成本上的优势逐渐明显,“去小机化”成为当下的一大趋势,企业内各项业务也在逐渐向x86 服务器平台整合。与此同时,云计算的兴起和落地使得虚拟化技术被大量地引入数据中心。因此,x86 服务器的虚拟化成为一个热门话题。在此时机下,各服务器设备厂家均结合Intel 最新的CPU 平台,在服务器的架构设计、配置优化及设计等方面开展工作。但是,对于如何评估服务器对虚拟化的支撑能力方面尚缺统一的标准。本文在分析了服务器虚拟化性能测试的需求和特征的基础上,提出了服务器虚拟化性能测试架构,并结合SPECvirt-SC2013 测试工具,探讨了服务器虚拟化性能评测的关键要素,最后给出了虚拟化性能评测建议。
[1] SPEC[EB/OL].[2015-03-11].http://www.spec.org/.
[2] SPECvirt_sc2013[EB/OL].[2015- 03- 11]. http://www.spec.org/virt_sc2013/.
[3] TPC-C[EB/OL].[2015-03-11].http://www.tpc.org/tpcc/.
[4] R.R.Schaller. Moore's law:past,present and future[J]. IEEE Spec⁃trum,1997,34(6):52-59.
[5] J.J.Dongarra,P.Luszczek,A.Petitet.The LINPACK Benchmark:past,present and Future[J]. Concurrency and Computation Practice and Experience,2003,15(9):803-820.
[6] 褚瑞,卢锡城,肖侬.一种基于聚类的虚拟计算环境资源聚合方法[J].软件学报,2007,18(8):1858-1869.
[7] 王凯,侯紫峰.自适应调整虚拟机权重参数的调度方法[J].计算机研究与发展,2011(11).
[8] 支连意.云计算:Xen虚拟机与VMware ESX虚拟机性能及稳定性对比研究[J].软件导刊,2012(3).
[9] 张新玲,张东,曹玲玲,等.云计算虚拟化平台性能研究[J].软件导刊,2013(11).
[10]兰雨晴,宋潇豫,马立克,等.系统虚拟化技术性能评测[J].电信科学.2010(S1).
[11]Powers,David M W.Applications and explanations of Zipf's law[C].Association for Computational Linguistics.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!