2008年3月22日星期六

性能与功耗的博弈——浅析SPECpower_ssj2008测试结果


自从2005Google的首席工程师Luiz André Barroso在美国计算机学刊上发表《性能的代价》论文以来,业界掀起了对计算机系统性能性能追求方式的反思——无限制的追求系统性能,而忽视能源消耗的做法不再受到青睐。在这一潮流的影响下,Sun抛出了SWAP概念,AMDIntel也不约而同的主打每瓦性能牌,IDCGartner也在分析报告中迎合这一趋势。



200712月,目的在于树立一个接近于IT实际工作环境中的性能/功耗评价基准SPECpower_ssj2008问世。参与发起这一指标的业界厂商有AMD, Dell, 富士通-西门子, HP, Intel, IBMSun Microsystems,几乎囊括了所有一线服务器(及处理器)供应商,此外还有加州伯克利分校、美国劳伦斯-伯克利国家实验室和弗吉尼亚理工大学等顶级学术机构。


现在,出炉三个多月的SPECpower_ssj2008的真实表现如何?


了解——SPECpower_ssj2008的测试原理


简单而言,SPECpower_ssj2008的单位是overall ssj_ops/watt,即平均ssj每秒性能/每瓦,其中ssjserver side java business application的缩写。而java 服务器正是目前最常用的服务器端商业模型——这也是该基准默认采用BEAJava虚拟机的原因。


要完成一次SPECpower_ssj2008的测试需要构建一个测试平台,该平台通常由4个要件构成——被测服务器系统、测试控制系统、功耗分析器和温度传感器。按照目前已经完成测试的22套系统来看,均为14路的x86服务器(也可以测试刀片及低端RISC服务器,但目前还没有相应数据);测试控制系统则主要用来监视及调控被测试系统的负载水平和记录测试数据用,可以是PC或者低端服务器;功耗分析器则用于给被测系统提供电源,并记录相关数据;温度传感器则记录不同负载水平下的被测试系统温度水平。


测试的基本流程是,由控制系统按照从被测系统工作负载的0%到100%(每10%为一个量级),依次发出不同量级的请求,并持续一定时间,记录下该时段内的ssj_ops数据和系统功耗数据平均值,完成一次系统测试最少需要70分钟。记录完全部数据后,以ssj_ops的总和除以功耗总和,为最终的SPECpower_ssj2008指标。


SPECpower_ssj2008基准的详细定义、测试模型和方法论可参见其官方网站的技术文档


解读——做一个聪明的买家


3个月不到的时间里,共有22SPECpower_ssj2008测试结果发布,厂商对于这一标准看来有相当高的热情。从这些数据中,笔者挑选了6项比较有代表性的测试结果进行分析,让我们一起来看看能得出什么样的有趣结论。


首先,目前的测试结果全部基于x86的机架式和塔式服务器,没有刀片服务器和基于Power/ItaniumRISC服务器。看来业界的共识是,对于小规模的通用Java应用,普通x86服务器已经是无可争议的性价比、性能功耗比的领先者。而没有刀片服务器的原因比较复杂,因为通常是若干刀片服务器共享一个Chassis,所以不能以未满插的Chassis来进行此项测试,故刀片服务器的成绩要过一段时间才能看到。


其次,目前这一指标的记录保持者是HPProliant DL180G5,在性能峰值和功耗成本上取得了最优结果,领先第二名10%左右。有意思的是,作为DL180 G5的姊妹产品,由于采用的是44核至强,Proliant DL580 G5在性能峰值上超过采用两路四核至强的DL18020%,但最大功耗上则多付出了50%的代价——这无疑在强调——在性能与功耗的博弈中,必须有所取舍。


性能最低的是Intel送测的一台爷爷级样机,从该系统的配置就可以看到——3.6G的单核Xeon(估计是06年前后生产的最后一批Nocona),内存用的是41GBDDR,测试峰值只有40852,仅为HP Proliant DL5801/9;最大功耗则是骇人听闻的336w,比其他的所有两路四核服务器都要高出一大截——难得在你追我赶的指标竞赛中看到这样的老爷机——做一个简单的假设,按照3年的使用寿命,以及30%的每日平均工作负载,电价为1/kwh,那么英特尔的这一老爷系统要比富士通西门子的Primergy TX120的电力成本要高出3416.4元,而且性能还仅为TX120系统的一半不到。莫非Intel的测试思路是树立一个反面典型?或者是还有部分积压CPU准备做成白牌抛售?不论如何,测试成绩确凿证明,购买服务器时,不能只看服务器本身的采购价格,必须计算能源成本。


第三个有意思地结论是,如果均衡地考虑性能与功耗的关系,那么采购服务器就不能简单地只看CPU指标——例如超微(Supermicro)和HP Dl180 G5,采用的都是两路4核至强,除内存外其他配置差异不大,但测试结果区别很大。DL180 G5由于在CPU主频上具有1GHz的优势,所以系统吞吐量峰值领先6025B-TR+30%,但功耗上却比超微的还要少56w,原因就在于二者采用的内存规格不同——虽然都是16GB内存,但相对于发热量巨大Intel的弃儿FBDIMM内存而言,业界目前普遍采用的DDR/DDR2在功耗上的确有很大优势,而且这一优势还随着内存容量的增加而扩大。


最后一个结论是,单核服务器已经是属于市场的淘汰产品,四核系统具有明显的性能优势,但中间的双核系统还会存在一段时间。例如富士通-西门子的
TX120ColfaxCX2266N2,虽然性能上差强人意,但前者的最大功耗仅为109w(比起主流PC的平均功耗还要低许多),非常适合没有专门机房和空调的SMB小客户;而采用ColfaxCX2266则是目前唯一基于Linux操作系统的测试系统,虽然SPECpower_ssj2008的结果不佳,但其主要原因在于双核皓龙2216HE的额定功耗较高,而且AMD在编译器方面也存在一定瓶颈,相信在AMD的四核皓龙正式上市后,这一情况能有所缓解。
期待——还需进一步简化和完善


总体而言,SPECpower_ssj2008这一指标较好的体现了PC服务器的Java性能与系统功耗之间的关系,但也有需要改进之处。


如其统计模型中,统计的依据是从以系统最大工作负载为100%,未加载工作任务时为0%,其中每10%为一级,每级同样加权,因而最终的SPECpower_ssj2008是一个平均值,仅具备参考价值,而非真正最适合某具体生产环境的指标——举例而言,如果是小型在线商务企业,最适合其使用的服务器通常只需要50%的工作负载,那么就应该看这些Server在工作负载50%的实际性能与功耗比,而不是最后的平均值。但问题随之而来,目前SPEC的页面浏览并不方便,不能提供上述按照SPECpower_ssj2008某级负载下的简便查询,这对于低端Server的用户来说,太过繁复。

此外,SPECpower应该还扩展家族成员,虽然在其技术白皮书和方法论白皮书中提到了SPECpower_ssj2008是一个逼进真实环境的测试基准,后期也期待更多类似基准出现,但SPEC组织并未给出具体发展蓝图。目前看来,在ssj2008之后,最应该增加的不外SPECpower_web2005web应用性能功耗基准)、SPECpower_sfs2008(磁盘存储性能功耗基准)、SPECpower_MPI2007(并行计算性能功耗基准),从而给业界树立一系列可操作的功耗标准。



没有评论: