2016年10月27日至28日,SPEC(Standard Performance Evaluation Corporation,标准性能评估组织)于北京举办了SPEC 2016亚洲峰会,这也是SPEC组织自1988年成立以来首次在中国举办的峰会。
在上一篇文章中我们可以知道,SPEC是一个非营利性的第三方组织,旨在制定、修改以及认证一系列计算系统应用性能评估的标准。SPEC制作的这些基准测试以及性能指标可以广泛适用并真实反映出客户的实际计算环境。
计算效率:同时考虑性能与功耗
本次峰会的口号是“发现真实的计算效率”,为此,SPEC组织安排了数场相关的主题演讲,不过,一个首先需要清楚的是,“计算效率”是指什么?从字面上看,显然并不是单纯的“计算性能”,它应该“性能”与某一个“成本参数”的比值,尽管实际上没有这么简单。
成本参数的选择有很多,如最简单的,购买成本,以及复杂一些的:运维成本,乃至总体拥有成本(TCO),不过,从测试的角度来看,价格不太好量化,从可以测量的参数当中选择的话,这个“成本”很大程度上应该是“能耗”。
能耗是长时间运行的一个重要成本之一,并且,能耗和很多其它的因素挂钩,譬如说,环保。例如,在文章中有所介绍,中国是世界上的能源消耗大国,主要能源就是来自于煤炭(大约75%),中国的发电站大部分都是使用煤炭的火力发电站,极大部分的SO2排放和CO2排放都由煤电产生,额外产生的副产品还有“雾霾”。对于IT行业而言,单独服务器,统计显示2015年中国服务器总销量236万台,保有量超过700万台,这些服务器每年电量消耗相当于半个三峡电站的发电量。降低服务器的能耗对环保有着正向的动力。
从数据中心内部来说,降低服务器的能耗同时还可以降低整体的散热和供电负担,从而会进一步降低整体的能耗。因此,本次峰会中,计算的效率指的就是“性能功耗比”。
计算效率的测试
要了解计算设备——也就是服务器——的计算效率,就要了解它的性能以及能耗,这需要相应的测试方法和工具,SPEC很早以前就开始关注能耗方面的测试,并在2006年的早期成立了SPECpower工作组,目标就是在于研究和开发可用的能源效率基准测试工具。在2006年,正是Intel的Pentium 4火炉CPU大行其时的时候,也是Ecos Consulting(现在的Ecova)推出80Plus电源效率认证的第二年。在2005年业内就已经认识到了能源效率的重要性,并开始反思单纯追求性能是否正确,最开始的就是2005年Google首席工程师Luiz André Barroso在美国计算机学刊上发表的《The Price of Performance: An Economic Case for Chip Multiprocessing》(性能的代价:一个芯片多处理的经济性案例),随后Sun Microsystem推出了业内的第一与能源效率有关的指标体系:SWaP (space, wattage and performance) 。简单地说,就是同时考虑空间、功率与性能,计算公式也很简单:SWaP = Performance/ (Space x Power)。
但更多的厂商缺乏建立这样的指标体系的能力,并且,就算是直接使用SWaP指标体系,也仍然需要工具去进行测试以获得实际的参数,大部分的厂商也没有建立这样的基准测试的能力,这需要由一个强有力的组织来完成。
2007年12月,SPECpower委员会推出了业内第一个能源效率方面的基准测试套件:SPECpower_ssj2008,这是一个里程碑式的产品,参与的业界厂商有AMD, Dell, Fujitsu-Simens, HP, Intel, IBM和Sun Microsystems,另外还有加州伯克利分校、美国劳伦斯-伯克利国家实验室和弗吉尼亚工学院等学术机构的参与以及美国环保总署和能源使用效率协会的赞助。
SPECpower大概是当时SPEC最复杂的测试项目,首先,它是一个与工作负载无关的能源效率测试框架,作为SPECpower当中的第一个产品,SPECpower_ssj2008是以JAVA应用为工作负载的,实际上,SPECpower_ssj2008运行的是一个修改版的SPECjbb2005工作负载(SPECjbb2005是一个SPEC推出的JAVA性能基准测试套件)。不管怎么样,属于SPECpower框架下的套件——现有的SPECpower_ssj2008或者将来其他的套件,都需要同时测试两个指标:功耗以及性能。
不过,SPECpower_ssj2008的测试结果并不是简单的性能除以功耗。SPECpower_ssj2008的测试方式是以测试服务器最大的workload为100%指标,以10% workload划分一个区域段——从100%到0%一共11个坐标,然后分别对比在每个不同的workload区域段之内的能耗。总的来说,在测试过程中既与性能有关,又与功耗有关,但最终的结果展示的是测试服务器的计算效率。
SPECpower_ssj2008展示了一个SPECpower框架的成功,但测试本身目前被限制为JAVA应用负载,尽管JAVA应用在服务器领域很流行,但桌面以及工作站领域缺乏相关的应用。SPECpower委员会后来又开发了SERT(Server Efficiency Rating Tool,服务器效率评级工具)。
SERT其实是应US EPA(Environmental Protection Agency,环境保护署)的请求而开发,US EPA最为有名的一个认证就是ENERGY STAR能源之星。在第一代能源之星的成功之后,EPA计划开发第二代的能源之星,将效率评级扩展到服务器领域。但EPA在此前更多的是于计算机电源以及显示器方面的认证,其缺乏评估计算机整体能源效率的方法,以及开发这样的基准测试的能力。
SERT(Server Efficiency Rating Tool,服务器效率评级工具)
SPEC开发的SERT在2013年正式发布,它由数十个被称为worklet的负载组件组成,并在运行时分别对服务器的CPU、内存、存储组件进行测试。可以看到的是,SERT中复用了在SPECpower_ssj2008当中出现的SPEC PTDaemon,区别在于,SERT的负载为常规的服务器进行了设计。值得一提的是,基于EPA的要求,SERT的运行比较方便,并具有一个简单的GUI图形界面。