APP下载

云环境下基于CPU密集型任务的能耗建模

2018-07-24

许昌学院学报 2018年6期
关键词:测试程序台数密集型

安徽国防科技职业学院 信息技术学院,安徽 六安 237000)

云计算数据中心使用的计算机耗费能量,产生的大气污染数字在高速增长[1].高能耗主要来源于处理器层次和数据中心层次的能耗.因此迫切需要探讨能耗和资源利用率的关系,以寻找一个最佳的资源利用率来降低能耗.

1 相关工作

CPU利用率越高,能耗越高.系统能效是单位时间内的运算量与能耗的比值.因此,探索CPU利用率的最佳点来最大化能效是研究热点.宋杰等[2]提出了一种通过CPU利用率和频率计算能效的方法,得出了当CPU利用率达到100%时能效达到最大值的结论;肖丁等[3]提出了一种基于分段式CPU利用率的能耗模型,将CPU能耗模型从简单的单线式线性能耗模型变成了分段式线性模型;叶可江等[4]介绍了能耗监测步骤及能耗轮廓分析方法,提出了虚拟机系统的整体能耗模型;于俊洋等[5]根据计算机各部件的参数对能耗变化的贡献程度和参数之间的相关度,选取最能代表能耗变化的可监测参数建立了一个能耗模型.上述学者建立的能耗模型大多以理论推导为基础,很少基于真实的能耗测试结果,因此笔者针对上述问题,以CPU密集型任务为负载类型,提出了一个非线性的能耗预测模型.

2 能耗建模

目前认为影响能耗的主要部件有CPU、内存、硬盘、网络.以计算密集型任务为研究对象,对于CPU密集型任务,能耗主要由CPU产生,因此在能耗建模的过程中,主要考虑CPU能耗.

虚拟机的能耗主要由两部分组成,一部分是虚拟机维持自身运行所消耗的能耗,即静态能耗;另一部分为虚拟机运行任务时消耗的能耗,即执行能耗.当系统被激活后静态能耗通常是不变的.因此我们将主要探讨动态功耗.对于CPU密集型任务来说,动态能耗主要由CPU产生,而其它部件的能耗如内存的能耗,可视为包含在静态能耗中.对于固定配置的虚拟机,静态能耗可以看成是一个常量,而动态能耗则与CPU利用率有关.

对于CPU密集型任务,假设数据中心有m种虚拟机运行任务,则第n种虚拟机的能耗定义为

(1)

(2)

3 实验与结果分析

为了验证能耗模型,分别在windows操作系统和linux操作系统下分别进行实验.通常采用MFCPUStresser程序及较为权威的SPECpower_ssj2008基准测试程序.

3.1 基于MFCPUStresser的测试

MFCPUStresser是一种解决方案,允许调整系统中的CPU利用率,根据不同CPU的利用率可以评估系统性能、测试系统的能耗.实验的测试环境及指标如表1所示.

表1 测试环境及指标

图1 虚拟机台数不同时CPU利用率与瞬时能耗的关系

通过测试发现,在分配的虚拟机核数由1增加到4的情况下,物理机的能耗差值与最大能耗的比值不超过0.04%,因此我们认为在不运行任何能耗测试程序的情况下,虚拟机的CPU核数对能耗的影响可忽略不计.为了验证虚拟机台数的增加对总能耗的影响情况,将虚拟机的台数由1逐渐增加到4,得到不同虚拟机台数情况下CPU利用率和能耗之间的关系,结果如图1所示,其中1、2、3、4分别代表为物理机分配的虚拟机台数.可以看出,虚拟机空载的瞬时能耗占满载时能耗的50%以上,能耗与CPU利用率之间并非线性关系,在CPU利用率逐渐增加的过程中,能耗与CPU利用率的曲线斜率在变小,即能耗的增加值在逐渐减小.

3.2 基于SPECpower_ssj2008的测试

我们使用了基准测试程序SPECpower_ssj2008对一台小型的方正圆明服务器进行了测试.通过SPECpower_ssj2008分别测试不同CPU利用率及不同内存对应的瞬时能耗.测试的具体参数如表2所示.

表2 SPECpower_ssj2008测试配置表

为验证内存对能耗的影响,通过改变内存的方法进行了多次测试,将该服务器的内存从2 GB逐渐增加到12 GB,分别记录运行测试程序时不同CPU利用率对应的瞬时能耗,测试结果如图2所示.可以看出,能耗与CPU利用率之间的关系曲线接近于线性但并非线性关系.在相同CPU利用率下,服务器的实际内存越高,对应的瞬时能耗越高,这说明CPU密集型任务的能耗不仅与CPU利用率有关,还与机器的内存有关.随着CPU利用率逐渐升高,曲线的斜率均逐渐减小.因此可以得出,随着CPU利用率的增加,相同CPU利用率的变化区间对应的能耗增加值则逐渐减小,即CPU的利用率越高,能效越高.

为了验证内存的利用率与瞬时能耗之间的关系,我们在服务器实际内存为12GB时分别进行了三次测试,实验结果如图3所示.可以看出,在不同CPU利用率的情况下,三种不同内存的利用率对应的能耗值基本相同,因此可以得出,对于CPU密集型任务,影响能耗大小的因素主要是服务器的实际内存,而与内存利用率无关.

4 结语

本文在两种不同的操作系统环境中,分别选择常见的CPU密集型应用程序MFCPUStresser及基准测试程序SPECpower_ssj2008对能耗进行测试,并对CPU密集型任务的能耗与各指标之间的关系进行探究.实验表明,CPU的利用率越高,能效越高;而且CPU密集型任务的能耗与机器的实际内存有关,与内存利用率无关;在其它配置相同的情况下,内存越大,能耗越高.

云计算需要同时考虑成本和任务的服务质量.为保证系统稳定性及满足用户的QoS约束,需要找到一个最佳点来平衡能耗和系统的稳定性,因此,就需要寻找一个满足QoS约束的CPU利用率最大值以最大化能效.

图2 内存不同时CPU利用率与瞬时能耗的关系

图3 不同内存使用率在不同CPU利用率下的瞬时能耗

猜你喜欢

测试程序台数密集型
密集型快速冷却技术在热轧带钢生产线的应用
基于Castle型机械手的三温量产测试平台实现
最优开机台数对水利泵站的节能研究
欧盟知识产权密集型产业的经济贡献及对我国的启示
密集型自动化立体仓库解析
2016年XX市工业锅炉内部检验缺陷统计及原因分析
中美专利密集型产业研究结果及分析
手机APP交互界面人因适合性测试程序的设计与实现
电气自动化控制设备可靠性测试探讨