|
JAVA应用性能测试:SPECjbb2005
SPECjbb2005(Java服务器基准)是评估服务器端JAVA性能的SPEC测试工具。和以前的SPECjbb2000一样,SPECjbb2005通过模拟三层C/S系统(主要是中间层)来评估服务器端JAVA的性能。该测试软件运行JVM(Java虚拟机)、JIT (Just-In-Time)编译器、碎片收集、线程以及操作系统的其他任务。它也测量CPU、Cache、内存和 SMP的性能。SPECjbb2005通过提供面向对象方式运行的、新的增强的工作负载,来反映真实应用系统的情况。另外,SPECjbb2005也引入了一些新的特性,如XML处理和BigDecimal计算,以保证测试结果能更确切地反映当前的实际应用。
SPECjbb2005是一种被广泛使用的工业标准基准测试。概括来讲,每个"warehouse"会产生一个独立的线程,从而决定测试线程的并发数。相对应于"hardware threads"总数,被测系统的warehouses数目 (X)都有一个预期的最高值,比如Clovertown和Dempsey每颗有8个hardware threads,Woodcrest 和Opteron每颗有4个hardware threads。最终的测试结果以"Business Operations per Second (BOP/s)"(每秒交易次数)为单位,都是基于X,X+1,X+2,X+3等,直到2X的平均吞吐量来计算。
SPECjbb2005的测试相当复杂,需要进行大量的参数设置。在测试中我采用了BEA的 64位 Jrockit JVM (jrockit-R26.4.0-jre1.5.0_06-win-x64)。使用单JVM和如下命令参数:-server –XXaggresive -XXtlasize64k –Xms2040M –Xmx2040M
如上图,可以很清晰的看到,随着线程的并行化处理,拥有更多的CPU核是比较有优势的。Clovertown在这一测试中占有绝对优势。但值得注意的是,当warehouses数目达到2X时,所有测试平台的曲线都开始下降,而Clovertown下降的速率甚至比Dempsey还要快一些。随着我对SPECjbb和命令参数越来越熟悉,我看看能否找出其中的原因,看看能否通过调整参数来更好地体现测试平台的性能。
每瓦特性能测试
尽管总的功耗使用情况也是值得关注的,但现在几乎所有人都特别关心每瓦特性能(performance-per-watt,PPW)上。我们知道,要测定总功耗使用量是比较容易的,但要在平台或系统的层面上来量化PPW就相当困难了。因为决定PPW的因素很多,而且结果会随着工作负载和实际应用的不同而变化。
SPEC目前正在开发可以获得全面PPW的新的基准测试工具。相信这一工具在比较不同系统时会有所帮助,但为了有效地量化PPW,你还是需要对自己的(或类似的)应用进行测试,并考虑自己的使用水平。这样一来,比如,在100%的CPU负载下运行SQL Server,跟在40%的负载下运行JAVA应用,系统的功耗肯定是不一样的,也就没有了可比性。
在下面的测试中,我自己编写了一个批处理文件,可以跑我们自编的Black & Scholes kernel。我使用了跟正常测试时一样的steps数目(1,000,000,000),但我改变了线程的数目,以模拟25, 50, 75和 100%的 CPU负载(Opteron 和Woodcres的线程数是1, 2, 3, 4;Clovertown 和 Dempsey 的线程数是2, 4, 6, 8),最后我得出了阶梯状的曲线,如下图。如果我们分析每一步负载的功耗和完成时间,就能得出被测系统的PPW结论。
在Black & Scholes kernel测试中,Woodcrest至强在各种负载水平下的PPW都比较低,但看看Woodcrest比Opteron和Dempsey节省的总功耗(在各种负载水平),你会发现,从长远来看,Woodcrest有助于节省长期电耗成本。很显然,在这次测试中,Clovertown的PPW表现是最佳的。
值得讨论的是,在这篇文章中,Black & Scholes kernel 的测试结果与其他每项测试都有所矛盾。仅仅通过这一测试来阐述PPW的结论可能有失偏颇。我之所以做这项测试,目的是希望能引发讨论——PPW实际上如何体现?测试PPW的基础是什么(应用、负载水平等等)?是否需要对每种应用负载都做类似的功耗测试?SPEC的工业标准测试工具是否能解决所有问题?对这些,我也没有答案。但我相信我们的方向是正确的,还需要进行更多的大量的探讨。
平台总功耗测试
为了了解测试平台的总功耗使用情况,我使用了Extech380803功率表来测量机器空闲和满负载状态下的电耗情况。在测试中,功率表仅连接到主机上(不含显示器和其他设备)。用CINEBENCH 9.5 (x64)的 多CPU渲染测试作为负载。Intel和AMD平台在测试中都打开了电源省电模式。
三个Intel平台使用完全相同的配置,因此,功耗变化完全取决于处理器本身以及额外增加的散热风扇。由于Opteron平台采用更少的风扇(2x 80mm和2x active HSF)和510W的低功耗电源,而Intel系统采用700W电源、120mm和92mm的风扇,所以Opteron平台在启动时应该具有较大的功耗优势。
结 论
我认为现在并不是所有人都很迫切的需要升级到4核平台。测试表明,在一些情况下,核心较少,但主频更高的Woodcrest的性能比核心较多但主频较低的Clovertown更好。尽管这一情况预计不会持续太久。
近两年来,多核化趋势越来越明显,软件开发商也正在为多核做准备,特别是游戏开发商更是看好这一趋势。相信随着多线程应用软件的涌现,四核处理器的价值会变得更加明显。
当然,这并不意味着当前四核处理器就没有市场。对于那些使用多线程软件处理多任务的用户而言,四核还是非常有吸引力的。在高端企业级应用和服务器应用中,四核显然有着广泛的市场。而且,我相信虚拟化将会成为四核的“杀手级应用”。
随着技术的飞速发展,IT产业正在革命性地向虚拟化的方向转变。在那种环境中,四核将会带来巨大的利益。正如我们所预见的那样,随着越来越多的成熟虚拟化解决方案的推出,这一趋势大潮将大大改变IT架构的面貌。 上一页 [1] [2] [3] [4] [5] |