2024年2月21日发(作者:)

采用SwingBench 2.2的Oracle RAC标准测试

你多久需要对你的应用进行一次标准测试?虽然你不总是想,但你确实想对你的环境中产生什么负载有个粗略的了解。我们将在我们的ESX环境中测试这些,还会使用VMware Server 1.0.3或Workstation 6.x的最新产品来做这项工作„„

标准测试真的是必要的吗?

是的,因为非常全面的、准确的和及时的信息是作出好的设计的基础。不幸的是,具有影响力角色的数据库管理员们或甚至是具有良好判断力的IT经理 们经常需要基于很少的信息作出决策。你已经浏览过这个流程几次了,可以知道增加容量意味着你要给你的服务器更多的内存和更多的CPU,然后它才能工作,对

吧?

我们需要信息不只是要正确的认识问题,还要设计一个策略在要求更多的容量之前解决它。标准测试结果和一个显示为什么你的应用运行有问题的数据和

数字的图表使得问题更清晰并易于管理。这使得管理关注于潜在的问题并提供一个更好的框架用于开发一个及时和高效的解决方案。作为一个技术人员,我们都知道 一个好的决策开始于可靠的信息,而标准测试提供一个框架、结构和方法来得到基本分析。所以标准测试不只是一个给一些在扫描了你的环境之后显示给你一些图像 的外来的顾问使用的工具——它是一个用于变化的强大的工具,通过产生可靠的、全面的查明弱点的信息,帮助使专业人员不再争论什么是错误的,而是去讨论怎样 改进系统。应用程序越复杂,指出应该采取的正确的导向就越困难。你的Oracle RAC也是这样的,这就是标准测试工具出现的原因。

市场中有哪些可用的基准工具?

在市场中有商业产品例如Quest的Benchmark Factory,它为所有的商业和开源的数据库提供了标准测试,包括Oracle,SQL Server,DB2,MySQL和Sybase。对于那些还不确定标准测试的原则是什么并对其感到好奇却缺乏资金的数据库管理员来说,他们可以试试 SwingBench产品,因为它是免费的。Oracle UK解决方案团队开发的这个产品,是基于Java的,对Oracle数据库实施测试(支持9i和10g版本)。比较稳定的版本是发布于2007年10月 15日的2.2版本,对于热衷于测试版本的人,在下载专区有一个2.3版本可以使用。

迅速浏览一下这个架构:

Courtesy SwingBench Manual 2.1

一个样本图表:

Courtesy SwingBench Manual 2.1

1 Swingbench 简述

1.1 概述

这是Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。目前稳定版本2.2,最新版本2.3,基于JDK1.5。该工具是免费的,可以在作者的网站上自由下载,并且拥有详细的使用文档。除了Swingbench,作者还开发了两个相关工具:测试数据生成工具DataGenerator和跟踪文件分析工具Trace Analyzer。

Swingbench 可以执行4种不同的标准测试(benchmark),拥有三种前端展示方式Swingbench/Charbench/Minibench,其中 Charbench是字符模式的,另外两种

是GUI模式的。另外还可以通过ClusterOverview可以聚合显示所有的结果。Swingbench 的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。最新的2.3版本开始支持TimesTen内存数据库。

下载地址:/

作者博客:/blog/

文档地址:/

2 Swingbench for windows安装

2.1 解压swingbench压力测试软件

首先在作者网站上下载最新的2.3版本,文件名,大小为9M左右

截压在D:swingbench230422swingbench

解压后目录结构如下图所示:

swingbench (Top Level Directory, contains )

|

+-- bin (Linux/Unix executables)

| |

| +-- sample (sample config files)

| |

| +-- data (data used by benchmarks)

| |

| +-- schema (xml schemas for config files)

|

+-- lib (Java *.jar)

|

+-- source (source code & build scripts for transactions)

|

+-- sql (sql scripts used by the wizards to create the schemas)

|

+-- winbin (Windows executables)

2.2 安装JDK

因为运行这个软件需要java支持,我这里下载的jdk 1.5 for windows安装包

介质名为jdk-1_5_

2.3 安装oracle 10g 客户端

因为在windows下面是客户端,需要安装oci或jdbc连接到p595 aix服务器

介质名为10201_client_

2.4 配置环境变量如下所示:

REM Set the following to reflect the root directory of your Java

installation

set JAVAHOME=C:jdk15

REM Set the following to the directory where you installed swingbench

set SWINGHOME=D:swingbench230422swingbench

REM Set the following to the location of your TimesTen install (optional)

set TTHOME=C:TimesTentt70

REM If you don't have the ORACLE_HOME environment variable set uncomment

the following and change it to reflect your environment

SET ORACLE_HOME=F:oracleproduct10.2.0db_1

set ANTHOME=%SWINGHOME%lib

set

CLASSPATH=%JAVAHOME%;%SWINGHOME%;%SWINGHOME%;

REM The following is needed for 10g environments

set

CLASSPATH=%CLASSPATH%;%ORACLE_HOME%;%ORACLE_HOME%

REM The following is only needed for 11g environments

set CLASSPATH=%CLASSPATH%;%ORACLE_HOME%

REM The following is only needed for TimesTen environments

set CLASSPATH=%CLASSPATH%;$TTHOME/lib/

3 配置swingbench 连接到数据库,创建表空间,用户,表订单等

3.1 配置文件

FSYYK =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 11.4.128.89)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 11.4.128.91)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = fsyyk)

)

)

3.2 运行$SWINGHOME/winbin目录下的文件

输入jdbc或oci连接方法

jdbc为//主机名或ip地址:1521/sid或services_name

oci为中的服务名以便创建表空间和用户,表结构等

4 运行$SWINGHOME/winbin/进行压力测试

选择配好的jdbc或oci连接

然后输入用户数,相关订单事物数,就可以进行压力测试了

SwingBench 2.2有什么新特性?我喜欢的有以下特性:

它包含了一个叫做“minibench”的新的轻量级GUI负载发生器

命令行增强了像老版本的start、stop、status这样的命令

你现在可以以命令行形式或图形模式运行协调器。

现在图表引擎使用的是Oracle的BI-Beans画图技术

现在用户可以关闭SwingBench中的跳转到事件面板功能

在clusteroverview中的用户图表现在允许用户指定被监控的用户

用于coordinator/swingbench/minibench/charbench的新的命令行选项

CPU监控器在charbench中输出

多个负载产生器的配置更加简单

对clusteroverview的修订

对向导的修订

输入标准测试的命令现在可以扩大到100GB

现在开始安装:

你需要安装Java虚拟机(JVM),以便在客户平台上运行SwingBench。使用

Sun的或IBM的1.4Java虚拟机。

首先下载和解压这个文件,在Windows/Linux上使用Winrar或一个zip工具来执行这个操作:

[oracle@vm01 swingbench]$ unzip swingbench

你需要修改$SWINGHOME/(对于Linux)或$SWINGHOME/(对于Windows)文件来执行默认安装:

文件是什么样子的?

#!/bin/bash

export ORACLE_HOME=/home/oracle/orasoft/product/10.2

export JAVAHOME=/usr/java/j2sdk1.4.2_09

export SWINGHOME=/home/oracle/swingbench

export ANTHOME=$SWINGHOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib

export LOADGENHOSTS='localhost'

export LOADGENUSER=oracle

export

CLASSPATH=$JAVAHOME/lib/:$JAVAHOME/lib/:$ORACLE_HOME/jdbc/lib/

r:$SWINGHOME/lib/:${SWINGHOME}/lib/:$ANTHOME/

在Unix/Linux 上clusteroverview可以通过下面的命令调用。确保在运行它之前要完成Clusteroverview配置!

[oracle@vm01 swingbench]$ cd bin

[oracle@vm01 bin]$ ./clusteroverview

或在Windows上使用下面的命令。

C: cd winbin

C:

运行SwingBench

使用-h获得所有命令的帮助

[oracle@vm01 bin]$ ./swingbench -h

usage: parameters:

-D use value for given environment variable

-a run automatically

-c specify config file

-co specify/override coordinator in configuration

file. i.e. "///CoordinatorServer"

-cpuloc specify/overide location of the cpu monitor.

Value is in the form "///CPUMonitor"

-cs override connect string in configuration file

-dt override driver type in configuration file. Value

is either "thin" or "oci"

-h,--help print this message

-i run interactively (default)

-max override maximum think time in configuration file

-min override minimum think time in configuration file

-p override password in configuration file

-r specify results file

-u override username in configuration file

这个版本具有更多的参数,例如

usage: parameters:

-D use value for given environment variable

-a run automatically

-c specify config file

-co specify/override coordinator in configuration

file. i.e. "///CoordinatorServer"

-cpuloc specify/overide location of the cpu monitor.

Value is in the form "///CPUMonitor"

-cs override connect string in configuration file

-d delay between transaction samples in seconds

-dt override driver type in configuration file. Value

is either "thin" or "oci"

-h,--help print this message

-i run interactively (default)

-max override maximum think time in configuration file

-min override minimum think time in configuration file

-p override password in configuration file

-r specify results file

-s run silent

-u override username in configuration file

-uc override user count in configuration file.

-v display run statistics (vmstat/sar like output)

-vc display run statistics including cpu load

(requires cpu monitor running on server)

-vd display run statistics including DML values

(vmstat/sar like output)

-vt display run statistics including transaction

values (vmstat/sar like output)