基于性能测试软件的服务器功耗实测研究
2021-06-11徐鑫白雪莲金超强
徐鑫 白雪莲 金超强
(重庆大学土木工程学院 重庆 400000)
过去的二十年,人们对于数据处理、存储和传输需求不断增加,伴随着计算机和电子信息技术的同步发展,数据中心行业爆发性增长。2018年中国数据中心市场业务总规模为1 228 亿元,占全球市场规模的19.64%,总机架数为271.06 万架,预计2021年,中国数据中心市场规模将会达到2 769.6 亿元,增速超过30%,中国将成为世界数据资源大国和全球数据中心[1-3]。数据中心能耗也逐年增加,2019年中国数据中心总用电量为1 748 亿kW·h,占全社会总用电量的2.4%[4]。数据中心的高能耗带来高昂的运营成本和环境问题,相关行业也越来越重视数据中心的节能工作。
数据中心的总能耗由IT(information technology)设备、空调系统、电源系统和附属设备等能耗组成。IT 设备能耗和空调系统能耗分别占总能耗的45%和40%[4-5],是大部分数据中心的耗能大户。其中IT 设备的能耗主要由服务器、网络设备及配电设备组成,其中服务器的能耗占IT 设备总能耗的70% ~80%[6]。服务器负责数据中心内部所有数据的计算、处理及存储工作,是数据中心能源的主要消耗者,同时也是数据中心空调系统负荷的主要来源。因此研究服务器功耗模型对数据中心能耗预测具有重大意义。在现有的研究中,通过性能测试软件对服务器进行测试,从而拟合得到服务器功耗模型是常用的研究方法。目前常用的性能测试软件有:Lookbusy、Stress等Linux 系统下的测试软件,以及SPEC(standard performance evaluation corporation)标准性能评估组织开发的针对高性能计算机的一系列测试套件。表1中归纳了部分功耗模型及其测试软件等信息。R.Basmadjian 等[7]利用Lookbusy 软件以CPU 电压、频率、内存频率、硬盘读写速率以及风扇转速为变量建立了针对塔式和机架式服务器的加法功耗模型。P.Garraghan 等[8]利用SPECpower_ssj 2008( 简称SPECpower),以服务器的产热和散热作为分析依据,认为服务器的功耗模型包括IT 组件以及散热组件两部分。R.Kavanagh 等[9]利用Stress 程序,仅基于CPU 利用率来估算整个系统的功耗,利用线性回归建立了功耗模型并提供了应用于虚拟机的模型。Wang Yewan 等[10]利用服务器能效测试工具,考虑了环境温度的影响,分析了服务器进风温度与功率增量之间的关系。G.Dhiman 等[11]根据数据中心内部服务器的工作状态,利用SPEC2000 测试套件将服务器功耗表示为基准功率和有功功率之和。A.Kansal等[12]以CPU 利用率、LLC(last level cache)丢失次数以及读写字节数为变量,同时考虑CPU、硬盘等组件的利用率,建立了功耗模型。
表1 服务器功耗模型Tab.1 Server power consumption models
Jin Chaoqiang 等[13]对现有功耗模型进行了统计分析,结果表明CPU 利用率是功耗模型中使用最广泛的指标。并且在CPU 密集型工作负载中,基于CPU 利用率建立的简单回归模型可以提供合理的预测精度[10],说明在此应用场景中服务器功耗的主要消费者为CPU。如表1所示,为了准确得到服务器的功耗,研究者们利用不同测试软件,选取服务器不同工作参数为变量,建立功耗模型。但在测试软件的选择上较为随意,且目前尚无对于不同软件测试结果的对比分析。服务器作为数据中心能源管理和热管理的基本单元,其功耗直接决定数据中心的整体能耗和空调系统的冷却负荷。准确的服务器功耗模型可以应用在服务器及其集群的能源管理和冷却系统的配置管理中。基于服务器功耗模型和虚拟化技术,管理者可以将工作负载分配到指定的服务器中,其他服务器则可依据任务需求关闭电源或进入休眠模式,进而减少服务器的总功耗[14]。数据中心冷却系统的供需匹配是节约制冷能耗的关键,依据服务器功耗模型,可以准确计算IT 设备的冷却需求,保证其在所需的环境中正常工作,并避免在设计和运行阶段中造成冷却能力浪费。因此本文针对以CPU 计算为主的应用场景搭建实验台,保持服务器进风温度恒定以避免IT 设备热效应带来的误差,利用Lookbusy、Stress 和SPECpower 三款性能测试软件,分析不同测试软件造成的服务器功耗差异及其影响因素。
1 服务器负载及性能测试软件的分类
1.1 服务器负载类型
因不同行业对数据中心的业务要求不同,服务器的负载类型也不同。如表2所示,服务器负载可分为科学研究、数据分析、业务处理、云数据、可视化和音频、通信及存储等类型[13]。在服务器执行不同的工作任务时,对内部组件的要求和利用率也不同,这会导致服务器功耗的差异。科学研究、数据分析等业务对于CPU 的利用率较高,且随着CPU 多核心、超线程等技术的发展,服务器功耗必将快速增加。而通信及存储业务的硬盘及I/O 利用率高,但硬盘和I/O 的功耗占服务器总功耗的比例较低,功耗增长趋势也较缓慢[15]。因此以CPU 计算为主要应用场景的服务器迅速发展,造成服务器整体功耗的增加,同时对数据中心的制冷系统和供配电系统提出了严峻的挑战。
表2 常见负载类型对IT 设备的利用率[13]Tab.2 Common load types utilization of IT equipment[13]
1.2 性能测试软件
Lookbusy 和Stress 为Linux 系统的性能测试软件,可以通过不同命令改变CPU、内存、I/O、硬盘等组件的利用率,从而测试服务器的性能。
SPEC 是一个全球性的第三方非营利性组织,致力于建立、维护和认证一套应用于计算机的标准化基准评测套件。SPEC 组织开发基准测试套件,在完成测试并经过检验后会在SPEC 网站上公开测试结果。
SPEC 基准测试套件包含云、中央处理Java 客户端/服务器、存储、功率、虚拟化等。其中SPECpower是业界第一个用于测量单节点和多节点服务器的性能以及功耗的测试软件。由于服务器在绝大部分时间内都处于低负载运行状态,IT 从业者采取了一系列措施降低服务器处于低负载时的功耗。而SPECpower 采用了一种测试方法,可以测试各种系统负载下的性能以及功耗从而衡量服务器工作的能效。SPECpower 与Lookbusy、Stress 等软件的不同之处是在确定服务器负载时,SPECpower 会通过3 次校准测试确定该服务器的最大负载,然后根据校准得到最大负载计算对应的目标负载。因此,SPECpower 的软件利用率不能与Stress、Lookbusy 软件一样代表CPU 的实际利用率,SPECpower 软件利用率表示整个服务器的目标负载与校准所得最大负载的比值。SPECpower 测试同样考虑了环境温度对于IT 设备功耗以及性能的影响,环境温度的测量是一份完整版测试报告的必要条件。
2 实验设计
实验平台分为测试服务器和控制主机,测试服务器为一台Dell PowerEdge R740 机架式服务器,其配置规格如表3所示。控制主机为1 台笔记本电脑,用来向服务器发送指令并收集实验数据。测试主机和控制主机之间利用网线通过IPMI(intelligent platform management interface)智能平台管理端口连接,服务器实验数据通过Zabbix 监测系统以及Dell 服务器自带的iDRAC(integrated dell remote access controller)戴尔集成远程控制器进行收集。Zabbix 系统每隔2 s会自动采集并存储服务器的功耗数据,其精度为2 W。R.Kavanagh 等[16]发现由于IPMI 的功率传感器分辨率较低,会导致Zabbix 系统的功耗监测数据和功率计实测读数之间存在偏差。为检验IPMI 读数的准确性,在服务器侧安装了功率计,其测量范围为0.5~4 400 W,精度等级为1 级,读取测试期间服务器的平均功率与IPMI 的功耗数据进行对比分析。同时服务器进风侧也设置了3 枚K 型热电偶记录服务器进风温度,测温范围为-40~1 100 ℃,误差±1.5℃,每10 s 采集一次数据,保持服务器进风温度恒定且处于标准推荐范围内,避免环境温度的大幅波动对实验造成误差。在Lookbusy、Stress 和SPECpower 测试期间,服务器进风平均温度分别为22.9 ℃、22.1℃和23.1 ℃。实验平台和实验流程如图1、图2所示。
表3 测试服务器配置表Tab.3 Test server configuration
图1 实验平台Fig.1 Experimental platfor m
图2 实验流程Fig.2 Experimental flow
分别采用SPECpower、Lookbusy 和Stress 软件在测试服务器上生成负载,负载范围为0%~100%(以10%为增量)。在实验过程中,Lookbusy 和Stress 软件在每个负载水平下稳定运行5 min 后改变工况;SPECpower 由软件自行完成一次测试。记录不同负载下服务器的功耗、进风量、进风温度以及服务器的工作参数。
3 实验结果分析
3.1 软件利用率和CPU 利用率的关系
图3所示为服务器CPU 实际利用率与测试软件利用率的差异。可以发现Lookbusy 和Stress 软件CPU 利用率的实测值和设置值基本一致,满足测试要求。Lookbusy 可以通过命令改变CPU 的利用率,其偏差在0.8%以内。由于Stress 只能启动整数个线程,然后使用任务集将其映射到物理主机的CPU 中。因此在确定的CPU 利用率所需要的线程数目不为整数时,会存在偏差,但最大偏差在1.5% 以内。SPECpower 的软件利用率与CPU 实际利用率之间呈二次多项式关系,其拟合多项式的相关指数R2=0.993,CPU 的实际利用率的增量随SPECpower 软件利用率的升高而逐步增大。
图3 软件利用率与CPU 利用率的差异Fig.3 The utilization difference between software and CPU
由于SPECpower 软件的利用率同CPU 利用率并不相同,为确定相同CPU 利用率下因测试软件不同造成的功耗差异,利用SPECpower 利用率与CPU 利用率之间的关系,采用插值的方法获得某一确定CPU 利用率下的服务器功耗及其他工作参数。
3.2 服务器功耗与CPU 利用率的关系
图4所示为测试过程中功率计的读数与IPMI 监测的功耗数据的差异。可以发现,在服务器处于低负载时,IPMI 数据与功率计读数偏差较大,最大可达10%。二者差异随CPU 利用率的增长先降低后升高。在服务器CPU 利用率为40%~80%时,IPMI 和功率计的功耗数据基本吻合,偏差在5%之内,最小仅为0.38%。随服务器CPU 利用率的继续增长,二者偏差略微上升,在CPU 满载时IPMI 和功率计的偏差为4%。虽然IPMI 功耗传感器分辨率较低,导致二者监测数据存在偏差,但IPMI 监测数据的偏差对三款测试软件造成的影响基本一致,且在数据中心内部利用直连功率计确定每台服务器的功耗是不现实的,IPMI 数据也更易获取和收集。因此在不同工况的对比测试中使用IPMI 数据进行分析和讨论是完全可行的。
图4 IPMI 与功率计读数差异Fig.4 The reading difference of IPMI and power meter
服务器功耗随CPU 利用率的变化如图5所示。实验开始前服务器的待机功耗为156 W,约占满载功耗的50%。实验过程中服务器功耗随CPU 利用率的增长逐步趋于平缓。但在相同CPU 利用率下服务器的功耗随负载软件的不同而存在较大差异,除待机工况外,Stress 软件的测试功耗最高,SPECpower 次之,Lookbusy 软件测试功耗最低。在CPU 利用率为100%时,Lookbusy 功耗为286 W,为SPECpower 软件测试满载功耗313 W 的91.4%,Stress 软件测试满载功耗338 W 的84.6%。可以发现,即使负载软件的选择不同,但服务器功耗随CPU 利用率变化的整体趋势是一致的。相同CPU 利用率下服务器功耗的差异是由服务器工作参数的不同所导致。
图5 服务器功耗随CPU 利用率的变化Fig.5 Server power consumption changes with CPU utilization
为了确定不同测试软件造成的服务器功耗差异,对负载稳定时服务器的平均进风量、CPU 平均温度及服务器其他组件利用率随CPU 利用率的变化进行分析。如图6所示,在进风温度稳定的状态下,SPECpower 和Lookbusy 的实验过程中服务器的风量约为109 m3/h,且全程基本保持稳定;Stress 软件在实验过程中服务器的进风量随CPU 利用率和温度的变化而改变,在CPU 利用率大于30%后,因CPU 温度剧烈上升至80 ℃,导致服务器的进风量和风扇功耗显著增加。
图6 服务器进风量随CPU 利用率的变化Fig.6 Server air intake changes with CPU utilization
图7所示为服务器CPU 温度随CPU 利用率的变化情况,在3 组实验中服务器CPU 的温度并不相同。而服务器CPU 的温度越高,其能耗也越大,且CPU 的温度不仅影响服务器的进风量,也会产生较大的泄漏电流,导致能源的浪费。有研究表明,当芯片温度达到85 ℃时,无效的漏电占CPU 总耗电的一半。因此CPU 温度的不同也是导致测试功耗不同的原因之一。减少泄漏电流的有效方法是降低芯片温度,通过冷却降低芯片温度,可以有效减少漏电部分损失,大幅度减少泄露电流,从而很大程度上降低芯片的耗电量,提高信号等电子传送效率[4]。但大幅度降低IT 设备电子元件的工作温度,势必会引起冷却系统能耗的增加,因此需要在保证IT 设备高效工作的前提下,降低冷却能耗,达到数据中心整体能效的最优化。
图7 服务器CPU 温度随CPU 利用率的变化Fig.7 Server CPU temperature changes with CPU utilization
因服务器的主要负载是CPU 计算,且在实验过程中I/O 读写速率均未超过50 KB/sec,其产生的功耗差距可以忽略不计。而对于内存而言,不同负载软件所调用的内存大小差异明显,实验过程中内存利用率随CPU 利用率的变化如图8所示。在Lookbusy 和Stress 实验中,内存利用率全程均稳定在5%,而在SPECpower 实验中,服务器内存利用率则全程稳定在71%。根据每个通道DIMM(dual inline memory modules)的数目、容量及运行频率,内存条的功率通常在4~15 W 之间[17]。在测试过程中,服务器内存利用率不随CPU 利用率的变化而改变,即内存功率为定值。因此测试软件对于内存的利用程度会对服务器的稳定功耗产生一定影响。但在以CPU 计算为主要应用场景时,不同工况时服务器进风量与CPU 温度之间的差异对于服务器功耗变化所造成的影响更大。
图8 服务器内存随CPU 利用率的变化Fig.8 Server memory changes with CPU utilization
在三组实验中,Stress 软件测试功耗明显高于其余两款的原因是Stress 作为Linux 压力测试软件,会对服务器运行的稳定性提出更高要求,检验服务器在CPU温度升高时风量能否匹配,服务器能否正常运行。因此,在利用Stress 软件进行测试时,CPU 温度更高,而更高的CPU 温度会导致更大的泄露电流和服务器风扇功耗。虽然Stress 软件对于内存利用率较低,但是在以CPU 计算为主的应用场景中,CPU 的功耗和风扇的功耗均大于内存。而Lookbusy 和SPECpower 软件实验中服务器的进风量保持恒定,其功耗差异产生的原因是SPECpower 作为综合负载测试软件,会根据服务器的硬件配置确定最大负载,对各组件均进行调用,而不仅限于CPU。在SPECpower 实验中CPU 温度更高,其泄漏电流和功耗都更大,且SPEC 可以调用71%的内存执行任务,也会增加一部分功耗,导致服务器的整体能耗高于Lookbusy 实验工况。
4 结论
本文利用Lookbusy、Stress、SPEC power 三种测试软件,研究了在以CPU 计算为主的应用场景中,测试软件不同导致的服务器功耗差异及其原因,得到结论如下:
1)随服务器负载水平的不同,IPMI 监测数据与功率计读数的偏差也不同。当服务器CPU 利用率低于30%或高于90%时,偏差较大,最高可达10%。虽然IPMI 功耗传感器分辨率低,但其对测试软件的影响趋势基本一致且更易获取,因此在进行不同工况的对比时仍然可采用IPMI 功耗数据进行分析。
2)不同的性能测试软件对于服务器硬件资源的利用程度不同,导致服务器各部件的利用率、温度均不同,因此服务器的整体功耗也不同。在CPU 利用率为100%时,Lookbusy 和SPECpower 软件的功耗偏差会达到15.4%。在选取测试软件时,SPECpower 软件会综合考虑服务器硬件水平,对服务器各组件均施加相应负载,因此当服务器应用场景不唯一,对硬件资源调用程度更全面时,使用SPECpower 软件的测试结果更准确。而Stress 软件,更适合测试服务器在极端工况下的运行稳定性。
3)在以CPU 计算为主要应用场景的服务器中,功耗差异一般是由CPU 温度和服务器进风量的差异导致,且二者存在相互关系。降低CPU 温度会大幅度减少泄漏电流,但需要更大的进风量,而更大的进风量会增加风扇功耗。因此需要综合考虑,在保证服务器稳定运行的前提下,使其整体能耗最低。