IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

在 DB2 Universal Database 上安装 SPECjAppServer2004 应用程序

一个端到端的 J2EE 1.3 的例子

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 初级

Tony Lau (tktlau at ca.ibm.com), DB2 性能工程师, IBM

2004 年 10 月 01 日

SPEC 提供了关于如何安装 SPECjAppServer2004 应用程序的用户指南。现在基准的技术范围相对于 2002 年发布的基准已经有了很大的扩展,覆盖了 J2EE™ 1.3 环境中的更多方面。本文档不包含特定于供应商的信息。但是本文提供了关于在 IBM® DB2® Universal Database™ (UDB) 和 WebSphere® 上安装 SPECjAppServer2004 的说明和示例脚本。使用脚本可以使安装任务变得更轻松,原先需要劳累一整天的工作,如今只需花上一个小时就轻松解决。

简介

SPEC Web 站点上有这么一段话:“Standard Performance Evaluation Corporation (SPEC) 是一个非盈利机构,其宗旨是建立、维护和签署(endorse)一套标准化的相关基准,以便将这套基准应用于最新一代的高性能计算机。SPEC 开发基准套件,并审核和发布由我们成员组织提交的结果以及其他基准许可。” SPEC 所开发的基准套件被不同的供应商和顾问广泛使用,他们将这些套件用作一种检验解决方案的平台,或者用作一种展示产品的工具。

作为电子商务业界的领袖,IBM WebSphere Application Server 和 DB2 UDB 已发布了世界上第一个遵从 SPECjAppServer2004 的结果。其基准结果和完整的报告张贴在 Standard Performance Evaluation Corporation (SPEC) 网站上[1]。

上一篇文章中,我们介绍了一种可以加快安装 SPECjAppServer2002 的编写脚本的方法。而 SPEC 在 SPECjAppServer2004 基准中已大大扩展了技术范围。编写脚本变得更加重要。我们已经重写了所有示例脚本,以覆盖新的基准。本文将带您亲历在 IBM 平台上建立单节点沙箱(sandbox) SPECjAppServer2004 环境的过程,包括从用测试数据装载数据库到对 Web 站点进行压力测试的所有步骤。新用户应该获取带 J2EE 1.3 性能基准的快速入门教程(quick start),以便于学习。本文为读者打好了坚实的基础,以便他们能够很好地理解问题,从而晋级到更高级的 J2EE 技术和性能调优概念。

目标

我们先简要介绍一下本文的主要目标:

  • 提供用于 IBM 产品的 SPECjAppServer2004 的安装说明。SPEC 提供了关于如何安装 SPECjAppServer2004 应用程序的用户指南[1]。本文档中不包括特定于供应商的信息,但是我们提供了关于在 WebSphere 和 DB2 UDB 上安装 SPECjAppServer2004 应用程序的说明。
  • 简化配置和提高效率。这个基准工具包包含了上千个文件。安装这个工具包时需要在大约 50 个不同的地方编写很多文件。有句老话说,一张图抵得上千言万语。在企业计算领域,一个脚本可以节省数天的工作。我们提倡使用脚本自动化来简化任务。本文提供了示例脚本,以供参考。我的经验是,这种编写脚本的方法可以将安装时间从一天缩短到一个小时。
  • 为新用户提供傻瓜式的说明书。IBM 提供了关于 WebSphere 和 DB2 UDB 管理的综合性文档,包括从安装测试系统到构建具有高可用性支持的大型群集的各种内容。本文的一个目标就是提供关于如何安装基准的说明,出于学习的目的,这里的配置是尽可能简单的。对于那些对转而从事更高级的 J2EE 技术和性能工作感兴趣的人,可以将本文作为基础。

先决条件

硬件

如果是用于学习,那么任何型号的 Intel Windows® 桌面电脑都可以适用于本文内容。下面列出了我们在本文中所使用的硬件:

  • IBM eServer™ x345
  • 2 个 2.8 GHz 的 CPU
  • 6 块 SCSI 硬盘
  • 4 GB 的内存

软件

下面列出了我们在本文中所使用的软件:





回页首


SPECjAppServer2004 基准

SPECjAppServer2004 可以测试有代表性的 J2EE 应用程序以及组成应用程序环境的各组成部分的性能,这些组成部分包括硬件、应用服务器软件、JVM 虚拟机、数据库软件、JDBC 驱动程序和系统网络。

SPECjAppServer2004 中的性能度量叫做 JOPS (jAppServer Operations Per Second)。该度量是通过将经销商域(dealer domain)中每秒的操作数与制造商域(manufacturing domain)中每秒的工作订单(work order)数相加而得到的。这种度量使 J2EE 供应商可以在 J2EE 性能社区里比较具有不同硬件和软件的系统。

Workload 是一个应用程序,它模拟汽车经销商、制造商、供应链管理以及库存系统之间的消息流。SPECjAppServer2004 基准扩展了 SPECjAppServer2002 规范,可以运行更多的 J2EE 应用服务器的功能。SPECjAppServer2004 负载驱动程序(load driver)通过 Web 接口来为汽车经销商驱动应用程序以及用 Enterprise Java Bean (EJB) 来为制造商域驱动应用程序。这种新的基准还可以测量 Web 层和消息传递基础设施的性能。





回页首


安装 IBM DB2 UDB

DB2 UDB 有一个非常容易使用的安装程序。考虑到我们的目的,我们选择 Typical 安装选项。为了简便起见,将该产品安装到 C:\SQLLIB 。如果您使用响应(response)文件,那么应确保有如下关键设置。


清单 1. DB2 安装选项
FILE=
        
        C:\SQLLIB\
INSTALL_TYPE=
        
        TYPICAL
			
      
      

为了验证是否安装成功,打开一个 DB2 Command Window 并发出如下所示的命令。


清单 2. 验证 DB2 是否安装成功
C:\GettingStartedWithSpecJ2004>
        
        db2level
DB21085I  Instance "DB2" uses "32" bits and DB2 code release "SQL08016" with
level identifier "02070106".
Informational tokens are "DB2 v8.1.6.544", "s040517", "WR21340", and FixPak
"6".
Product is installed at "C:\SQLLIB".
C:\GettingStartedWithSpecJ2004>
        
        db2stop
06-06-2004 13:42:28     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
C:\GettingStartedWithSpecJ2004>
        
        db2start
06-06-2004 13:42:33     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
C:\GettingStartedWithSpecJ2004>
        
        db2sampl
C:\GettingStartedWithSpecJ2004>
        
        db2 list db directory
 System Database Directory
 Number of entries in the directory = 1
Database 1 entry:
 Database alias                       = SAMPLE
 Database name                        = SAMPLE
 Database drive                       = C:\DB2
 Database release level               = a.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
                        
      
      

这样可以确保启动数据库管理器、停止数据库管理器以及创建数据库等功能都能够正常运行。





回页首


安装 IBM WebSphere Application Server、IBM HTTP Server 和 WebSphere MQ

WebSphere Application Server 提供了一个简单的安装程序,可以在一个安装向导内安装应用服务器、HTTP 服务器和消息服务器。在安装过程中,请选择 Full 安装选项。为了简化问题,可以将应用服务器安装在 C:\was51\b0344.02 中,将 HTTP 服务器安装在 C:\was51\b0344.02_http 中,再将消息服务器安装在 C:\was51\b0344.02_mq 中。如果您喜欢使用响应文件,那么应确保拥有如下所示的关键设置:


清单 3. WebSphere 安装目录
-P wasBean.installLocation="C:\was51\b0344.02"
-P ihsFeatureBean.installLocation="C:\was51\b0344.02_http"
-P mqSeriesServerBean.installLocation="C:\was51\b0344.02_mq"
                        

在继续进入下一步之前,先要确保对安装情况进行了测试。为了验证安装是否成功,需要打开一个命令窗口并发出如下命令。下面是某次测试输出的示例。


清单 4. 验证 WebSphere 是否安装成功
C:\was51\b0344.02\bin>
        
        startserver server1
ADMU0116I: Tool information is being logged in file
           C:\was51\b0344.02\logs\server1\startServer.log
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 2368
C:\was51\b0344.02\bin>
        
        ivt
IVTL0095I: defaulting to host tktlau04 and port 9080
IVTL0010I: Connecting to the WebSphere Application Server tktlau04 on port: 9080
IVTL0015I: WebSphere Application Server tktlau04 is running on port: 9080
IVTL0050I: Servlet Engine Verification Status - Passed
IVTL0055I: JSP Verification Status - Passed
IVTL0060I: EJB Verification Status - Passed
IVTL0070I: IVT Verification Succeeded
IVTL0080I: Installation Verification is complete
C:\was51\b0344.02\bin>
        
        stopserver server1
ADMU0116I: Tool information is being logged in file
           C:\was51\b0344.02\logs\server1\stopServer.log
ADMU3100I: Reading configuration for server: server1
ADMU3201I: Server stop request issued. Waiting for stop status.
ADMU4000I: Server server1 stop completed.
                        
      
      

要验证是否成功安装 HTTP,需要启动 HTTP 服务器服务并导航到 http://<hostname>/ 测试页面。


清单 5. 验证是否成功安装 HTTP 服务器
C:\was51\b0344.02_http>
        
        apache -v
Server version: IBM_HTTP_SERVER/1.3.28  Apache/1.3.28 (Win32)
Server built:   Oct  9 2003 16:16:55
C:\was51\b0344.02_http>
        
        net start "IBM HTTP Server 1.3.28
The IBM HTTP Server 1.3.28 service is starting.
The IBM HTTP Server 1.3.28 service was started successfully.                        
                        
      
      

为了验证 MQ 的基本功能,需要发出如下命令。


清单 6. 验证是否成功安装 WebSphere MQ
C:\was51\b0344.02_mq\bin>
        
        mqver
Name:        WebSphere MQ
Version:     530.4  CSD04
CMVC level:  p530-04-030617
BuildType:   IKAP - (Production)
C:\was51\b0344.02_mq\bin>
        
        crtmqm q1
WebSphere MQ queue manager created.
Creating or replacing default objects for q1.
Default objects statistics : 31 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
C:\was51\b0344.02_mq\bin>
        
        strmqm q1
WebSphere MQ queue manager 'q1' started.
C:\was51\b0344.02_mq\bin>
        
        endmqm -w q1
Waiting for queue manager 'q1' to end.
Waiting for queue manager 'q1' to end.
WebSphere MQ queue manager 'q1' ended.
C:\was51\b0344.02_mq\bin>
        
        dltmqm q1
WebSphere MQ queue manager 'q1' deleted.                        
                        
      
      

这样就可以确保所有部分都已成功安装。





回页首


获取 SPECjAppServer 代码

SPECjAppServer2004 result 网页上提供了最新的 SPECjAppServer2004 代码[1]。对于我们的例子,我们将使用在 2004 年 5 月由 IBM 提交的完整报告中的代码。同时将两个 EAR 文件复制到 C:/was51/b0344.02/installableapps 中。


清单 7. SPECjAppServer2004 代码
04/23/2004  10:50a              86,803 Emulator_V1.01_Cluster.ear
05/05/2004  11:00a           2,428,206 SPECj2004_v1.01.3_Cluster_WAS51.ear
                        

SPECjAppServer EAR 文件是基准应用程序,这个程序将被部署到应用服务器上。





回页首


安装 SPECjAppServer 基准工具包

SPECjAppServer CD (由 SPEC [1] 提供,标有建议售价)附带了一个 InstallShield 程序 setup.exe 。如果该安装程序没有找到任何 JVM,那么浏览到 DB2 附带的那个 JVM,即 C:\SQLLIB\java\jdk\bin\java.exe 。为简便起见,我们将这个工具包安装在 C:\SPECjAppServer2004 目录下。这个工具包中有用于装载数据库和驱动基准的一些基准工具。





回页首


安装 PERL

我们需要使用 PERL 来使安装过程变得更加容易。任何标准的 PERL 都可以在这里使用。下面的清单展示了我们使用的 PERL 版本 [2]。


清单 8. PERL 版本
C:\SPECjAppServer2004\script>perl –v
This is perl, v5.8.0 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2002, Larry Wall
Binary build 806 provided by ActiveState Corp. http://www.ActiveState.com
                        





回页首


解包配置脚本

下载附属于本文的 ZIP 文件,并将其中的内容解压到 C:\SPECjAppServer2004\script 中。在这个包中共有 4 个用户文件。

  • setenv.pl
  • specjdbsetup.pl
  • specjdrvsetup.pl
  • specjwassetup.pl

setenv.pl 文件由一些用于安装的参数组成。specjdbsetup.pl 脚本用于创建 SPECjAppServer 数据库。specjwassetup.pl 脚本处理应用程序的所有部署任务。specjdrvsetup.pl 脚本负责 SPECjAppServer 基准驱动程序的安装。





回页首


提供配置参数

setenv.pl 文件带有一组默认参数。如果您完全遵从前面几节中给出的说明,那么大多数默认值都很合适。

在第一块参数中,包含了被安装产品的目录信息。如果需要的话,可以定制这些参数。


清单 9. 服务器安装目录
#---------------------------------------------
# Server install directories
#---------------------------------------------
$SpecjKitHome='c:/SPECjAppServer2004';
$JavaHome='c:/SQLLIB/java/jdk';
$WasHome='c:/was51/b0344.02';
$WasNode='pizza43';     #Hostname
$Db2Home='c:/SQLLIB';
$WinHome='c:/WINNT';
$Login='spec';
$Password='spec';
                        

第二块参数描述了数据的位置。如果需要的话可以定制这些参数。


清单 10. 数据库和日志目录
#---------------------------------------------
# Database and log directories
#---------------------------------------------
$SpecjDbDir='c:\specdb';
$SpecjLogDir='c:\speclog';
$SpecjPipe='c:/temp';
                        

最后一块中的参数指向 SPECjAppServer 代码和仿真器(emulator)的位置。


清单 11. EAR 安装参数
#---------------------------------------------
# EAR install parameters
#---------------------------------------------
$SpecjEar='c:/was51/b0344.02/installableapps/SPECj2004_v1.01.3_Cluster_WAS51.ear';
$EmulatorEar='c:/was51/b0344.02/installableapps/Emulator_V1.01_Cluster.ear';
$SpecjEarDeployed='c:/was51/b0344.02/installedapps/SPECj2004.ear';
$EmulatorEarDeployed='c:/was51/b0344.02/installedapps/SPECj2004_Emulator.ear';
                        





回页首


创建 SPECjAppServer 数据库

要创建 SPECjAppServer 数据库,只需在 DB2 Command Window 中运行 perl specjdbsetup.pl即可。该脚本不仅创建数据库,而且还转储(dump out)用于问题判别(problem determination)的信息。如果可行的话,它总是聪明地将输出通过管道传送到一个用于问题判别的文件中。

该脚本将使用 setenv.pl 文件中指定的登录名和密码创建一个用户。在这里,应确保 Local Security Policy 允许这样的用户名和密码。


清单 12. 系统中的用户
Administrator            db2admin                 dssadmin
Guest                    spec                     TsInternetUser
The command completed successfully.
                        

SPECjAppServer 数据库总共由 20 个用户表组成。创建了数据库后,该脚本将列出数据库中的所有表。


清单 13. 数据库中的所有表
list tables
Table/View                      Schema          
------------------------------- --------------- 
C_CUSTOMER                      SPEC            
C_CUSTOMERINVENTORY             SPEC            
C_PARTS                         SPEC            
C_SITE                          SPEC            
C_SUPPLIER                      SPEC            
M_BOM                           SPEC            
M_INVENTORY                     SPEC            
M_LARGEORDER                    SPEC            
M_PARTS                         SPEC            
M_WORKORDER                     SPEC            
O_ITEM                          SPEC            
O_ORDERLINE                     SPEC            
O_ORDERS                        SPEC            
S_COMPONENT                     SPEC            
S_PURCHASE_ORDER                SPEC            
S_PURCHASE_ORDERLINE            SPEC            
S_SITE                          SPEC            
S_SUPP_COMPONENT                SPEC            
S_SUPPLIER                      SPEC            
U_SEQUENCES                     SPEC            
  20 record(s) selected.
                        

接着,该脚本将配置数据库装载器,并将数据装载到数据库中。等到万事俱备,该脚本将建立到数据库的连接,并发出一条对客户表的查询,进行健康检查(sanity check )。


清单 14. 对客户表的查询
select count(*) from C_CUSTOMER
1          
-----------
      15000
  1 record(s) selected.
                        

勤勉的读者应该仔细研究这个脚本,以了解幕后的细节。





回页首


部署 SPECjAppServer 应用程序

要部署 SPECjAppServer 应用程序,只需在一个 DB2 Command Window 中发出 perl specjwassetup.pl命令。应确保将输出通过管道发送到一个文件中,以便于进一步的研究。

首先,该脚本将确认刚创建的所有别名 specdelivery、specemulator 和 specdb 是否可用。specdelivery 别名代表 WebSphere 系统的 IP 地址。specemulator 别名代表 SPECjAppServer 基准驱动程序或仿真器的地址。specdb 别名代表 DB2 UDB 服务器的地址。在我们的例子中,上述地址都是本地的,都要通过 127.0.0.1 地址。


清单 15. 别名 specdelivery
Pinging specdelivery [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum =  0ms, Average =  0ms
                        

而且,DB2 JDBC™ 提供程序和数据源是通过 WebSphere JACL 脚本创建的。注意,在发布时,我们使用了 Type 2 驱动程序,因为那时 Type 4 驱动程序还没有得到认证。对于那些对使用不同 JDBC 驱动程序感兴趣的读者,请参考 WebSphere InfoCenter [3]。


清单 16. 创建 DB2 JDBC 提供程序和数据源
Getting Server Name
Getting Adapter Name
Creating JDBC Driver and SPECj DataSources with the following configuration
                      CellName  pizza43 
                      NodeName  pizza43 
     Database Driver ClassPath  c:/SQLLIB/java
                 Database User  spec 
             Database Password  spec4spec 
         DatabaseProvider Name  DB2 Universal JDBC Driver Provider (XA) 
 Database Implementation Class  COM.ibm.db2.jdbc.DB2XADataSource 
                 Database Name  specdb 
               DataSource Name  SPECDB 
               DataSource JNDI  jdbc/SPECDB  
 
            Relational Adapter  "WebSphere Relational Resource Adapter
            (cells/pizza43/nodes/pizza43:resources.xml#builtin_rra)" 
 
                     WAS Cell   pizza43(cells/pizza43:cell.xml#Cell_1) 
                     WAS Node   pizza43(cells/pizza43/nodes/pizza43:node.xml#Node_1) 
 
 
Creating JAAS AuthData SPECjDataSourceAuthData
Create DB2 Universal JDBC Driver Provider (XA) on pizza43
	(cells/pizza43/nodes/pizza43:node.xml#Node_1)
Create SPECDB
{name SPECDB} {description "SPECjAppServer2004 DB2 JDBC Datasource"}
Creating Datasource Properties
Creating Connection Factory
Create SPECUtilDB
{name SPECUtilDB} {description "SPECjAppServer2004 Util DB2 JDBC Datasource"}
Creating Datasource Properties
Creating Connection Factory
Saving Config
                        

然后,通过 JACL 脚本创建 JMS 连接和目标(destination)。


清单 17. 创建 JMS 连接和目标
                        
WASX7209I: Connected to process "server1" on node pizza43 using SOAP connector;  
The type of process is: UnManagedProcess
------------------------------------------
Creating JMS Connections, Destination
    with the following configuration:
                  NodeName          pizza43 
           JMS Server Name          Internal JMS Server 
         JMS Provider Name          WebSphereJMSProvider 
  Queue Connection Factory          QueueConnectionFactory 
Queue Connection JNDI name          jms/QueueConnectionFactory 
------------------------------------------
Target Node Found: pizza43(cells/pizza43/nodes/pizza43:node.xml#Node_1)
 
Server Found: server1(cells/pizza43/nodes/pizza43/servers/server1:
	server.xml#Server_1)
 
Create Queue Provider and MQ Queue name for Queues
JMS Resource setup using provider "WebSphere JMS Provider
(cells/pizza43/nodes/pizza43:resources.xml#builtin_jmsprovider)"
Setting Internal JMS Server(cells/pizza43/nodes/pizza43/servers/server1:
	server.xml#JMSServer_1) initial state to START
JMS Queue BuyerQueue not found. Adding to Internal JMS Server
(cells/pizza43/nodes/pizza43/servers/server1:server.xml#JMSServer_1)
Create QueueConnectionFactory
Queue Connection Factory: QueueConnectionFactory
(cells/pizza43/nodes/pizza43:resources.xml#WASQueueConnectionFactory_1086875314625)
Create BuyerQueue
Create FulfillOrderQueue
Create LargeOrderQueue
Create ReceiveQueue
Create BuyerPort
Create StateManageable: initialState = START
Create FulfillOrderPort
Create StateManageable: initialState = START
Create LargeOrderPort
Create StateManageable: initialState = START
Create ReceivePort
Create StateManageable: initialState = START
Save Admin changes
						

最后,脚本将部署和安装 SPECjAppServer Web 应用程序和仿真器。


清单 18. 安装 EAR 文件
ADMA5013I: Application SPECjEmulator installed successfully.
…
ADMA5013I: Application SPECjAppServer installed successfully.
…
                        

WebSphere administrative (wsadmin) 脚本程序是一个强大的、非图形化的命令解释程序环境,通过它可以执行用脚本语言编写的管理操作。specjwassetup.pl 脚本是使用这个程序的一个很好的例子。





回页首


安装 SPECjAppServer 基准驱动程序

要安装 SPECjAppServer 基准驱动程序,只需在 DB2 Command Window 中发出 perl specjdrvsetup.pl命令即可。

安装脚本将所有已部署的类复制到 SPECjAppServer 基准工具包中。Jar 文件包含了应用程序中用到的对象。


清单 19. 复制被部署的类
corp.jar
mfg.jar
orders.jar
supplier.jar
util.jar
xercesImpl.jar
xmlParserAPIs.jar
        7 file(s) copied.
                        

接着,该脚本将修改基准驱动程序目录中的各种文件,以便将参数提供给驱动程序。现在,驱动程序应该可以创建代理和启动基准了。


清单 20. 开始一次运行
The following environment settings are in effect for SPECjAppServer2004
* ========================= *
   JAVA_HOME=c:/was51/b0344.02/java
    JAS_HOME=c:/SPECjAppServer2004
  CONFIG_DIR=c:/SPECjAppServer2004/config
  APPSSERVER=default
     ENVFILE=c:/SPECjAppServer2004\config\default.env
* ========================= *
Driver Host: PIZZA43
Binding controller to //pizza43/Controller
Controller: Registering M1 on machine 9.26.99.1
Controller: Registering L1 on machine 9.26.99.1
DriverDebug: DealerAgent <propsFile> <agentName> <masterMachine>
Controller: Registering O1 on machine 9.26.99.1
Calling switchLog as master
RunID for this run is : 3
Output directory for this run is : c:/SPECjAppServer2004/output\3
TTF1 = 103
ttf = 103
Configuring 1 DealerAgent(s)...
DealerAgent O1, Thread 0 started
DealerAgent O1, Thread 1 started
DealerAgent O1, Thread 2 started
DealerAgent O1, Thread 3 started
DealerAgent O1, Thread 4 started
DealerAgent O1, Thread 5 started
DealerAgent O1, Thread 6 started
DealerAgent O1, Thread 7 started
DealerAgent O1, Thread 8 started
DealerAgent O1, Thread 9 started
DealerAgent O1, Thread 10 started
DealerAgent O1, Thread 11 started
DealerAgent O1, Thread 12 started
DealerAgent O1, Thread 13 started
DealerAgent O1, Thread 14 started
DealerAgent O1, Thread 15 started
DealerAgent O1, Thread 16 started
DealerAgent O1, Thread 17 started
DealerAgent O1, Thread 18 started
DealerAgent O1, Thread 19 started
Configuring 1 MfgAgent(s)...
MfgAgent M1, Thread 0 started
MfgAgent M1, Thread 1 started
MfgAgent M1, Thread 2 started
MfgAgent M1, Thread 3 started
MfgAgent M1, Thread 4 started
MfgAgent M1, Thread 5 started
Configuring 1 LargeOLAgent(s)...
sleeptime is 26891 note this is time in excess needed for trigger 
MfgAgent L1, Thread 0 started
Starting  O1:0:  at 30656   EndRampUp is at  130656
Starting  O1:1:  at 30765   EndRampUp is at  130656
Starting  O1:2:  at 30859   EndRampUp is at  130656
Starting  O1:3:  at 30968   EndRampUp is at  130656
Starting  O1:4:  at 31046   EndRampUp is at  130656
Starting  O1:5:  at 31156   EndRampUp is at  130656
Starting  O1:6:  at 31265   EndRampUp is at  130656
Starting  O1:7:  at 31359   EndRampUp is at  130656
Starting  O1:8:  at 31453   EndRampUp is at  130656
Starting  O1:9:  at 31562   EndRampUp is at  130656
Starting  O1:10:  at 31656   EndRampUp is at  130656
Starting  O1:11:  at 31750   EndRampUp is at  130656
Starting  O1:12:  at 31859   EndRampUp is at  130656
Starting  O1:13:  at 31953   EndRampUp is at  130656
Starting  O1:14:  at 32046   EndRampUp is at  130656
Starting  O1:15:  at 32156   EndRampUp is at  130656
Starting  O1:16:  at 32250   EndRampUp is at  130656
Starting  O1:17:  at 32359   EndRampUp is at  130656
Starting  O1:18:  at 32453   EndRampUp is at  130656
Starting  O1:19:  at 32562   EndRampUp is at  130656
Gathering DealerStats ...
Gathering MfgStats ...
summary file is c:/SPECjAppServer2004/output\3\SPECjAppServer.summary
Calling getLog as master
                        

所有这些结果都被存储在 c:\SPECjAppServer2004\output 目录下。现在,您可以查看首次得到的这组结果。





回页首


创建一个更大的数据库

在 SPECjAppServer2004 基准中,系统的大小是由注入速率(injection rate)指定的。如果注入速率为 1,则对应着大约有 13 个并发客户机。在前面几节的安装中,创建了一个只支持少量的用户(注入速率为 2)的数据库,并对系统应用了相应的负载,以进行功能测试。虽然关于如何运行基准的细节超出了我们的讨论范围,但仍有必要介绍一遍一些关键的方面。

数据库的大小是在我们装载数据库的地方决定的。为了装载数据库,我们使用 loaddb.bat 脚本,并在其中以参数的形式传递注入速率。例如,下面的命令将删除数据库中的数据,并装载支持注入速率 10 的数据库:


清单 21. 装载数据库的例子
cd c:\SPECjAppServer2004\bin
setenv.bat
loaddb.bat 10
                        

在首次运行之前,必须指定运行的负载和时间。为了开始一次运行,我们使用 driver.bat 脚本,该脚本从 run.properties 文件读取运行参数。txRate 参数就是注入速率。rampUp、stdyState 和 rampDown 参数对应于单位为秒的运行时间。例如:


清单 22.例子 run.properties 片段
txRate = 10
rampUp = 300
stdyState = 600
rampDown = 300
                        

下面的命令将开始一次运行:


清单 23. 开始一次运行的例子
cd c:\SPECjAppServer2004\bin
driver.bat
                        

当数据库更大、用户更多时,数据库性能调优非常重要。为了在开始时就拥有优化的 DB2 配置参数值,使用 DB2 Configuration Advisor 是个好方法。Configuration Advisor 将根据它向您提出的一些有关 DB2 UDB 的问题(例如可用内存、工作负载类型等等)来决定 DB2 配置参数的最佳值。





回页首


结束语

在本文中,我们带读者亲历了安装单节点 SPECjAppServer2004 应用程序所需的步骤。这里建立起来的经验应该可以帮助读者向更高级的 J2EE 技术和性能调优概念迈进。有了本文中使用的配置脚本的帮助,在 DB2 UDB 和 WebSphere Application Server 上安装 SPECjAppServer2004 基准的过程将变得很容易。一张图抵得上千言万语。我们的经验是,编写脚本的方法可以使这项任务变得更轻松,以前劳累一整天的工作,如今只需花上一个小时就轻松解决。

致谢

笔者要感谢 DB2 WebSphere Performance 小组的经理 Peter Shum,是他给我提供了有关基准测试的专业建议。

笔者要感谢 WebSphere Performance Benchmark Sample 的开发人员。示例 JACL 脚本正是在基准工具包中的脚本的基础上构建出来的。

笔者还要感谢 DB2 Performance 小组的 Meng Fu,是他帮忙处理了这些脚本和本文的输入。






回页首


下载

名字大小下载方法
script_ga.zip35 KB
关于下载方法的信息


参考资料

  1. 您可以参阅本文在 developerWorks 全球站点上的 英文原文
  2. SPEC.org上有 Standard Performance Evaluation Corporation (SPEC) 方面的信息。
  3. SPEC 网站上可以找到官方的 SPECjAppServer2004 结果。
  4. ActiveState ActivePerl上提供了 ActiveState。
  5. WAS Information Center Reference Library上提供了 Websphere InfoCenter。


关于作者

Tony Lau 是 IBM 认证系统专家。他是 IBM 多伦多实验室的一名软件工程师。过去曾是 Waterloo 大学并行程序设计和分布式系统实验室的一名研究助理。他还是 UW Alumni 的积极成员。目前主要负责 DB2 在 WebSphere 上的性能方面的研究。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款