上次在了解到一个压力工具Swingbench,这是 UK的一个员工在一个被抛弃的项目的基础上开发的。目前稳定版本2.2,最新版本2.3,基于JDK1.5。该工具是免费的,可以在(国内无法访问,需要使用代理,推荐Torpack,最新版已经改名叫)上自由,并且拥有详细的使用文档。除了Swingbench,作者还开发了两个相关工具:测试数据生成工具DataGenerator和跟踪文件分析工具Trace Analyzer。
Swingbench可以执行4种不同的标准测试(benchmark),拥有三种前端展示方式 Swingbench/Charbench/Minibench,其中Charbench是字符模式的,另外两种是GUI模式的。另外还可以通过 ClusterOverview可以聚合显示所有的结果。Swingbench的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。最新 的2.3版本开始支持TimesTen内存。
简单架构(单实例)
高级架构(RAC)
Swingbench支持的4种标准测试
其中OrderEntry和Sales History采用的测试数据基于Oracle自带的两个Sample
Schema:OE和SH。Calling Circle则每次运行都需要重新生成schema。Stress
Test是最简单的测试,可以用于测试TimesTen。其中OrderEntry和Calling Circle还提供了向导程序。
配置和使用Swingbench
下载后解压缩,然后修改配置文件中的JAVAHOME和SWINGHOME。Unix/Linux平台配置文件为swingbench.env,执行文件路径为bin;下则为swingbenchenv.bat和winbin。在windows平台上注意一定要配置ORACLE_HOME,好像不认注册表。
Swingbench的配置文件为swingconfig.xml,但是通过命令行参数可以覆盖配置文件中的设置。各种工具也都有自己相应的xml配置文件。
使用Swingbench相当简单,直接调用相应的向导或者展示程序即可图形化操作。例如我们要执行OrderEntry测试,首先执行oewizard创建schema SOE并生成测试数据
然后执行swingbench开始测试
Minibench的结果
Charbench的结果
ClusterOverview运行前必须先运行coordinator,由于没有RAC环境,这里就不截图演示了。