• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

浅谈基准测试SPECjbb2000

发布: 2007-5-22 15:07 | 作者: 李一峰 | 来源: IBM | 查看: 217次 | 进入软件测试时代论坛讨论

软件测试时代

众所周知,当今许多应用软件都是用Java编写的,其优势是经过一次编写后,可运行在不同的操作系统平台上,有很大的灵活性。但不同的Java版本运行在不同的硬件平台上,会反映出不同的性能。如何判定不同硬件平台运行Java程序的效率,是Java使用者所普遍关心的问题。

1.    SPECjbb2000 Java基准测试

SPECjbb2000 是SPEC委员会制定的一套Java基准测试程序,它是用于测试Java服务器性能的。SPECjbb2000模拟了三层客户/服务器模型结构,所有的三层结构都在一个JVM(Java虚拟机)内实现。

这三层结构模拟了一个典型的商业应用结构:第一层是用户(客户端输入);第二层是商业应用逻辑;第三层是数据库。在SPECjbb2000里,第一层是用进程或线程模拟客户系统的随机输入;由Java类和Java对象形成的Btree模拟第三层的数据库;在第二层里是对Btree数据库中的数据进行操作,其结构图如下:

结构图

SPECjbb2000 基准测试借用了TPC-C基准测试的概念、输入产生、和交易模式。只不过,SPECjbb2000用Java类取代数据库中的表(Table),用Java对象取代数据库中的记录(Record)。SPECjbb2000主要关心的是第二层业务逻辑的处理能力,即考察用Java编写的应用程序运行在某台服务器上所表现出的性能。

SPECjbb2000规则中要求只运行一个Java虚拟机(JVM)。在整个测试中,以下因素是影响测试性能的关键:

  •   JVM(Java虚拟机)

  •   JIT(即时编译)

  •   Garbage Collection(垃圾收集)

  •   Thread(线程)等技术

  •   操作系统的内核处理

  •   CPU的整型处理能力、Cache的大小,内存大小和结构。

  •   服务器SMP的线性扩展能力。

SPECjbb2000测试中,并没有考察到网络、磁盘I/O、和图形处理能力。

2. SPECjbb2000 Java基准测试结果分析

下表收集了一些厂商的服务器运行SPECjbb2000基准测试的结果。

机器型号CPUMemoryJVM版本结果(ops/s)
HP Superdome64-way (875MHz, PA-8700+)256GBHotspot 64-bit Server VM 1.4.0.01614358
Sun Fire 15K104-way (1050 MHz, UltraSPARC III)576GBHotSpot 64-Bit Server VM on Solaris/SPARC version 1.4.0_01602270
Sun Fire 15K72-way(1050 MHz, UltraSPARC III)288GBHotSpot 64-Bit Server VM on Solaris/SPARC version 1.4.0_01433166
HP Superdome32-way (875MHz, PA-8700+)128GBHotspot 1.4.1.02 64-bit VM on HP-UX11i for PA-RISC 8700+346862
pSeries 690 Turbo32-way (1300 MHz, POWER4)128GBJ2RE 1.3.1 IBM AIX 5L for PowerPC (64 bit JVM)339484
Sun Fire 680024-way (1200 MHz, UltraSPARC III)48GBHotSpot Server VM on Solaris/SPARC, version 1.4.2231121

上述结果截止于2003年5月31日。

SPECjbb2000测试值的好坏更多的依赖于Java虚拟机的性能,而且受系统带宽的影响较小。在硬件台不变的情况下,JVM版本的升级会带来性能几倍的提升。

从上表中可看到HP Superdome 32-way比IBM p690 32-way测试值高,虽然HP Superdome的CPU主频低于IBM p690的CPU主频,但是其使用的JVM的版本已经是1.4.1.02,而IBM p690上的JVM版本是1.3.1。从详细的测试结果中去看,HP Superdome 64-way的机器在启动到32个客户端时的值是335403 ops/s,低于其32-way(32个客户端)机器的测试值。原因就在于32-way机器测试时使用的是JVM 1.4.1.02,而64-way机器使用的是JVM 1.4.0.01。

Sun Fire 15K 104-way 的测试值高于IBM p690 32-way,除了JVM版本较高外,其测试时的CPU个数很多。另外,我们还要看到Sun Fire 15K在启动到55个客户端时的测试值是334986 ops/s,低于IBM p690 32-way(32个客户端)的值。

2.小结

SPECjbb2000反映的是Java虚拟机的性能,但在实际中该值常被用来说明服务器的扩展性,尤其是我们的友商常用它来证明它们的服务器的性能是最优的、扩展能力是线性的。

SPECjbb2000基准测试完全是在内存中运行,不涉及I/O操作、网络操作等。如果用它来衡量服务器的整体能力和扩展性,这未免以点带面过于主观,TPC/C、Oracle ASB11i、SAP等这些基准测试更能贴近客户的实际情况,更能代表服务器的性能和扩展性。

文章来源于软件测试时代 http://www.testage.net/

TAG: 基准测试 specjbb2000


软件测试时代开课信息
Google
关于我们 | 合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2007 TestAge(测试时代) 北京慧灵科技有限公司 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备05002925号
技术支持和业务联系:info@testage.com.cn 电话:010-51297073