oracle官方压测工具,swingbench-免费的oracle性能压测工具

SwingBench介绍:

SwingBench由负载生成器,协调器和集群概述组成。该软件使得能够生成负载并且将图表的事务/响应时间映射。

SwingBench可用于演示和测试诸如实际应用集群,在线表重建,备用数据库,在线备份和恢复等技术

SwingBench附带的代码包括6个基准,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest ..

OrderEntry基于Oracle11g / Oracle12c附带的“oe”模式。它已被修改,以便不需要安装Spatial,Intermedia架构。它可以连续运行(直到你用完了空间)。它在少量表上引入了大量争用,旨在强调互连和内存。它使用位于bin目录中的“oewizard”进行安装。基准测试都存在纯jdbc和pl / sql(较低的网络开销)变体。

SalesHistory基于Oracle11g / Oracle12c附带的“sh”架构,旨在测试复杂查询在对大型表进行运行时的性能。它是只读的,可以按照从1GB到1TB的默认大小进行缩放。自定义模式还允许创建更小和更大的模式

CallingCircle(不建议使用)模拟为在线电信应用程序生成的SQL。它需要在每次运行之前将数据文件从数据库服务器生成并复制到负载生成器,通常需要1到8 GB的磁盘空间。两个基准都是CPU密集型。经验表明,您至少需要1台处理器的负载发生器到数据库服务器的每两个处理器。它旨在强调CPU和内存,而不需要强大的I / O子系统。它使用位于bin目录中的“ccwizard”进行安装

StressTest只是根据一个熟知的表来触发随机插入,更新,选择和更新。

JSON Stresstest基于对机场之间飞行的人员进行建模的简单JSON文档。它遵循基本的CRUD模型。

TPC-DS喜欢Benchmark是类似于TPC-DS的基准。它在单独的配置文件中具有查询和事务工作负载。

SwingBench下载:

SwingBench官方网址:http://www.dominicgiles.com/swingbench.html,可以download下最新2.6版本的SwingBench,需要先安装好jdk8,可以直接从oracle官网下载rpm安装即可。SwingBench包文件解压后如下:

01d2b376c55c293554c9456c2d2ef6ce.png

生成测试数据:

以order entry为示例:

图形界面生成测试数据和压测:

cd /tmp/swingbench/bin

./oewizard

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第1张图片

选择version2.0, next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第2张图片

选择create the order entry schema,next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第3张图片

配置connect string、username和password, next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第4张图片

配置tablespaces的datafile, next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第5张图片

配置schema的size, next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第6张图片

默认值为CPU个数*2, next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第7张图片

点击yes ,  next

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第8张图片

开始运行sql脚本生产测试数据,这里需要等待。

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第9张图片

数据已成功生成,接下来可以做压测了。

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第10张图片

开始性能压测:

cd /tmp/swingbench/bin

./swingbench

修改connect string,配置server monitoring相关配置参数,调整transtions的load ratio、number of users。

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第11张图片

可以收集数据库信息,生成awr报告。启动压测

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第12张图片

可以在output标签上查看压测结果

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第13张图片

也可以在将结果保存在bin目录下,XML格式

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第14张图片

测试结果对比生成html文件,用bmcompare工具

993fcba934cfc53d8b9427cf2c5295cc.png

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第15张图片

命令行界面生成测试数据和压测:[[email protected] bin]# time ./oewizard -cl -create -scale 1 -cs //oracle:1521/xcky -dba system -dbap oracle -u soe1 -p soe1 -ts soe -df /u01/app/oracle/oradata/xcky/soe.dbf -tc 4 -s

The following statement failed : GRANT EXECUTE ON dbms_lock TO soe1 : Due to : ORA-01031: insufficient privileges

The following statement failed : begin

$IF DBMS_DB_VERSION.VER_LE_10_2

$THEN

-- Use the default stats collection approach

dbms_stats.gather_schema_stats(

OWNNAME=> ‘SOE1‘

,ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE

,BLOCK_SAMPLE=>TRUE

,METHOD_OPT=>‘FOR ALL COLUMNS SIZE SKEWONLY‘

,DEGREE=> 4

,GRANULARITY=>‘ALL‘

,CASCADE=>TRUE);

$ELSIF DBMS_DB_VERSION.VER_LE_11_2

$THEN

-- Oracle 11g release 2. Emable concurrent stats collection

dbms_output.put_line(‘database version is less than or equal to 11.2‘);

DBMS_STATS.SET_GLOBAL_PREFS(‘CONCURRENT‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘WAREHOUSES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘INVENTORIES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘PRODUCT_INFORMATION‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘PRODUCT_DESCRIPTIONS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDERENTRY_METADATA‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘CUSTOMERS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ADDRESSES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDER_ITEMS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDERS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘LOGON‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.GATHER_SCHEMA_STATS(‘SOE1‘);

$ELSIF DBMS_DB_VERSION.VER_LE_12

$THEN

-- Oracle 12c. Concurrent Stats collection work slightly different in this release

execute immediate q‘[ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = ‘DEFAULT_PLAN‘]‘;

execute immediate q‘[ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 4 ]‘;

DBMS_STATS.SET_GLOBAL_PREFS(‘CONCURRENT‘,‘MANUAL‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘WAREHOUSES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘INVENTORIES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘PRODUCT_INFORMATION‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘PRODUCT_DESCRIPTIONS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDERENTRY_METADATA‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘CUSTOMERS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ADDRESSES‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDER_ITEMS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘ORDERS‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.SET_TABLE_PREFS(‘SOE1‘,‘LOGON‘,‘INCREMENTAL‘,‘TRUE‘);

DBMS_STATS.GATHER_SCHEMA_STATS(‘SOE1‘);

$END

end;

: Due to : ORA-20001: Invalid input values for pname

ORA-06512: at "SYS.DBMS_STATS", line 26595

ORA-06512: at "SYS.DBMS_STATS", line 26751

ORA-06512: at line 17

============================================

|           Datagenerator Run Stats        |

============================================

Connection Time                        0:00:00.004

Data Generation Time                   0:03:18.996

DDL Creation Time                      0:03:47.528

Total Run Time                         0:07:06.530

Rows Inserted per sec                       60,836

Data Generated (MB) per sec                    5.0

Actual Rows Generated                   13,002,033

Post Creation Validation Report

===============================

The creation of the schema appears to have been unsuccessful. See the following sections for further details.

Valid Objects

=============

Valid Tables : ‘ORDERS‘,‘ORDER_ITEMS‘,‘CUSTOMERS‘,‘WAREHOUSES‘,‘ORDERENTRY_METADATA‘,‘INVENTORIES‘,‘PRODUCT_INFORMATION‘,‘PRODUCT_DESCRIPTIONS‘,‘ADDRESSES‘,‘CARD_DETAILS‘

Valid Indexes : ‘PRD_DESC_PK‘,‘PROD_NAME_IX‘,‘PRODUCT_INFORMATION_PK‘,‘PROD_SUPPLIER_IX‘,‘PROD_CATEGORY_IX‘,‘INVENTORY_PK‘,‘INV_PRODUCT_IX‘,‘INV_WAREHOUSE_IX‘,‘ORDER_PK‘,‘ORD_SALES_REP_IX‘,‘ORD_CUSTOMER_IX‘,‘ORD_ORDER_DATE_IX‘,‘ORD_WAREHOUSE_IX‘,‘ORDER_ITEMS_PK‘,‘ITEM_ORDER_IX‘,‘ITEM_PRODUCT_IX‘,‘WAREHOUSES_PK‘,‘WHS_LOCATION_IX‘,‘CUSTOMERS_PK‘,‘CUST_EMAIL_IX‘,‘CUST_ACCOUNT_MANAGER_IX‘,‘CUST_FUNC_LOWER_NAME_IX‘,‘ADDRESS_PK‘,‘ADDRESS_CUST_IX‘,‘CARD_DETAILS_PK‘,‘CARDDETAILS_CUST_IX‘

Valid Views : ‘PRODUCTS‘,‘PRODUCT_PRICES‘

Valid Sequences : ‘CUSTOMER_SEQ‘,‘ORDERS_SEQ‘,‘ADDRESS_SEQ‘,‘LOGON_SEQ‘,‘CARD_DETAILS_SEQ‘

Valid Code :

Invalid Objects (1)

================

Invalid Tables :

Invalid Indexes :

Invalid Views :

Invalid Sequences :

Invalid Code : ‘ORDERENTRY‘

Missing Objects (0)

================

Missing Tables :

Missing Indexes :

Missing Views :

Missing Sequences :

Missing Code :

Schema Created

real    7m51.663s

user    3m23.913s

sys     0m24.096s

[[email protected] bin]# ./charbench -u soe1 -p soe1 -uc 1 -min 10 -max 200 -rt 00:01 -a -s -r scale1_100user.xml

SwingBench官网上除了提供swingbench压测工具外,还提供了其他监控oracle数据库的小工具,例如cpumonitor、dbtimemonitor、monitorDB、datagenerator等

monitorDB工具:

cd /tmp/MonitorDB/bin

修改配置文件monitordb.xml,将Username、Password和ConnectString进行配置后保存,启动程序。

./monitordb

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第16张图片

如dbtimemonitor工具:

cd /tmp/dbtimemonitor/bin

修改配置文件databases.xml,将Username、Password和ConnectString进行配置后保存,启动程序。

./dbtimemonitor

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第17张图片

如cpumonitor工具:

cd /tmp/cpumonitor/bin

修改配置文件cpu.xml,将HostName、Username和Password修改后保存,启动程序

./cpumonitor

oracle官方压测工具,swingbench-免费的oracle性能压测工具_第18张图片

参考资料:

http://blog.csdn.net/xiaofan23z/article/details/7978998

http://www.dominicgiles.com/swingbench.html

原文:http://linzhijian.blog.51cto.com/1047212/1952637

你可能感兴趣的:(oracle官方压测工具)