用orabm进行CPU压力测试

用orabm测试oracle服务器的tps值
1、orabm介绍
   orabm是一个开源的oracle性能测试工具,包含了一套sql脚本和几个命令行程序
   下载地址:http://www.linxcel.co.uk/orabm/orabm.tar

2、oracle@linux-0ygf:~/orabm> ls
_vti_cnf   orabm.pdf
bin        orabm_files
install    src
orabm.htm
注意:缺省的orabm测试用户会建立tools表空间,如果不用该表空间,编辑orabm\install\orabm_user.sql.该表空间最好在150mb以上。

3、安装orabm
 a create the orabm user (assumes tools tablespace, temp temporary tablespace) sqlplus system/pwd @orabm_user
 b create the tables sqlplus system/pwd @orabm_tab
 c load the data $ orabmload warehouses 1
 d create the indexes sqlplus system/pwd @orabm_ind
 e analyze the tables and indexes sqlplus system/pwd @orabm_analyze
 f create the stress-test pl/sql procedures sqlplus system/pwd @orabm_serverside_stress
 g cache the table and index data in the sga sqlplus system/pwd @orabm_cache


a、create the orabm user
oracle@linux-0ygf:~/orabm/install> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 20 17:13:22 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> start orabm_user.sql
grant succeeded.

user altered.

user altered.

revoke succeeded.

b、create the tables

oracle@linux-0ygf:~/orabm/install> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 20 17:15:20 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> start orabm_tab.sql

table created.

table created.

table created.

table created.

table created.

table created.

table created.

table created.

table created.


c、load the data
在装载数据的时候出现下面的错误,查看是因为系统是64位导致,编辑/etc/profile.d/oracle.sh将oracle---lib设置为lib32即可

oracle@linux-0ygf:~/orabm/bin/linux> ./orabmload.10g.linux Warehouse 1
./orabmload.10g.linux: error while loading shared libraries: libclntsh.so.10.1: wrong ELF class: ELFCLASS64

oracle@linux-0ygf:~/orabm/bin/linux> ./orabmload.10g.linux warehouse 1

Connected to ORACLE as user: ORABM
using timestamp=20120320163204
TPCC Data Load Started...
Loading Item
.................... 20000
.................... 40000
.................... 60000
.................... 80000
.................... 100000
Item Done.
Loading Warehouse
Loading Stock Wid=1
.................... 20000
.................... 40000
.................... 60000
.................... 80000
.................... 100000
 Stock Done.
Loading District
Loading Customer for DID=1, WID=1
...Customer Done.
Loading Customer for DID=2, WID=1
...Customer Done.
Loading Customer for DID=3, WID=1
...Customer Done.
Loading Customer for DID=4, WID=1
...Customer Done.
Loading Customer for DID=5, WID=1
...Customer Done.
Loading Customer for DID=6, WID=1
...Customer Done.
Loading Customer for DID=7, WID=1
...Customer Done.
Loading Customer for DID=8, WID=1
...Customer Done.
Loading Customer for DID=9, WID=1
...Customer Done.
Loading Customer for DID=10, WID=1
...Customer Done.
Loading Orders for D=1, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=2, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=3, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=4, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=5, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=6, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=7, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=8, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=9, W= 1
. 1000
. 2000
. 3000
Orders Done.
Loading Orders for D=10, W= 1
. 1000
. 2000
. 3000
Orders Done.

...DATA LOADING COMPLETED SUCCESSFULLY.
oracle@linux-0ygf:~/orabm/bin/linux> cd
oracle@linux-0ygf:~> cd orabm/install/

e analyze the tables
此处没有建立索引,跟后面建立索引做对比
oracle@linux-0ygf:~/orabm/install> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 20 16:33:41 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> start orabm_analyze.sql

Session altered.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.


Table analyzed.

analyze index ORABM.CUSTOMER_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.CUSTOMER_I2 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.DISTRICT_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.ITEM_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.NEW_ORDER_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.ORDERS_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.ORDERS_I2 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.ORDER_LINE_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.STOCK_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


analyze index ORABM.WAREHOUSE_I1 compute statistics
                    *
ERROR at line 1:
ORA-01418: specified index does not exist


Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

oracle@linux-0ygf:~/orabm/install> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 20 16:35:15 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> start orabm_serverside_stress.sql

Procedure created.


Procedure created.


Procedure created.


Procedure created.

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

oracle@linux-0ygf:~/orabm/install> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 20 16:36:00 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> start orabm_cache.sql

Table altered.


  COUNT(*)
----------
     30000


Table altered.


  COUNT(*)
----------
        10


Table altered.


  COUNT(*)
----------
     30000


Table altered.


  COUNT(*)
----------
    299630


Table altered.


  COUNT(*)
----------
    100000


  COUNT(*)
----------
     30000


  COUNT(*)
----------
     30000


  COUNT(*)
----------
    100000


  COUNT(*)
----------
    299630


  COUNT(*)
----------
     30000


  COUNT(*)
----------
     30000


  COUNT(*)
----------
    100000

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
oracle@linux-0ygf:~/orabm/install>


orabm的原理使用:

How Orabm Works

Orabm works by running a user-specified number of database transactions in each of a user-specified number of concurrent database sessions.
Orabm通过在用户指定的并发下运行指定数量的事务来测试系统性能.
The transactions are executed by the ORABM_SERVERSIDE_STRESS stored procedure, under the schema ORABM.
事务通过执行orabm用户的ORABM_SERVERSIDE_STRESS过程来实现.


For each concurrent session, ORABM_SERVERSIDE_STRESS runs the number of transactions specified on the orabm command line, and returns the transactions per second (TPS) value for that session during the sampling interval on completion.
对于每个并发session,ORABM_SERVERSIDE_STRESS运行在orabm命令行指定数量的事务.
并返回在完成所有任务的采样间隔内每秒的事务数量.
To ensure that all concurrent sessions are processing transactions during the sampling interval, the TPS value only includes results from the middle 80% of transactions: the first 10% and last 10% are ignored.
为了保证准确性,TPS值只取中间的80%数据,头尾的10%都将被忽略.


The transactions are loosely based on the TPC-C Order-Status and Stock-Level transactions, using a predefined distribution of transactions.
事务是松散的,基于标准的TPC-C测试的订单、库存事务模型,使用预定义的事务分布.
The transaction split, which is based on data returned by the DBMS_RANDOM package, should be:
事务基于DBMS_RANDOM包的返回值进行分割,应该是:

Stock-Level:Order-by-Customer-Name:Order-by-Customer-Id
50% :30% :20%


The string returned by ORABM_SERVERSIDE_STRESS includes the transaction split during the test, to ensure that the transaction distribution is correct, subject to random fluctuations e.g.:
为了确保事务分布的正确性,ORABM_SERVERSIDE_STRESS的输出包含事务分割比例,输出结果具有随机波动,例如:


oracle@linux-0ygf:~/orabm/bin/linux> ./orabm.10g.linux 1,2,6,10 10000
---begin sess=1 txn=10000 ORACLE_SID=orcl Tue Mar 20 16:40:58 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=283 tps=28 sl=3950(49.4%) n=2430(30.4%) i=1619(20.2%) end=200312-16:46:52
---end - Tue Mar 20 16:46:52 2012
---begin sess=2 txn=10000 ORACLE_SID=orcl Tue Mar 20 16:46:52 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=298 tps=27 sl=3982(49.8%) n=2377(29.7%) i=1640(20.5%) end=200312-16:53:05
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=301 tps=27 sl=4020(50.3%) n=2386(29.8%) i=1593(19.9%) end=200312-16:53:07
---end - Tue Mar 20 16:53:07 2012
---begin sess=6 txn=10000 ORACLE_SID=orcl Tue Mar 20 16:53:07 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=494 tps=16 sl=3958(49.5%) n=2439(30.5%) i=1602(20%) end=200312-17:03:41
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=514 tps=16 sl=3934(49.2%) n=2502(31.3%) i=1563(19.5%) end=200312-17:03:57
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=508 tps=16 sl=4017(50.2%) n=2404(30.1%) i=1578(19.7%) end=200312-17:03:56
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=533 tps=15 sl=3943(49.3%) n=2420(30.3%) i=1636(20.5%) end=200312-17:04:02
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=540 tps=15 sl=3959(49.5%) n=2450(30.6%) i=1590(19.9%) end=200312-17:04:09
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=562 tps=14 sl=4032(50.4%) n=2384(29.8%) i=1583(19.8%) end=200312-17:04:14
---end - Tue Mar 20 17:04:14 2012
---begin sess=10 txn=10000 ORACLE_SID=orcl Tue Mar 20 17:04:14 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=776 tps=10 sl=4043(50.5%) n=2377(29.7%) i=1579(19.7%) end=200312-17:20:32
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=805 tps=10 sl=3962(49.5%) n=2422(30.3%) i=1615(20.2%) end=200312-17:20:50
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=822 tps=10 sl=3966(49.6%) n=2450(30.6%) i=1583(19.8%) end=200312-17:20:54
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=826 tps=10 sl=3955(49.4%) n=2424(30.3%) i=1620(20.3%) end=200312-17:21:10
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=845 tps=9 sl=3979(49.7%) n=2466(30.8%) i=1554(19.4%) end=200312-17:21:22
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=849 tps=9 sl=3969(49.6%) n=2428(30.4%) i=1602(20%) end=200312-17:21:27
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=838 tps=10 sl=4022(50.3%) n=2389(29.9%) i=1588(19.9%) end=200312-17:21:29
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=862 tps=9 sl=3989(49.9%) n=2402(30%) i=1608(20.1%) end=200312-17:21:31
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=846 tps=9 sl=4018(50.2%) n=2431(30.4%) i=1550(19.4%) end=200312-17:21:32
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=884 tps=9 sl=4014(50.2%) n=2385(29.8%) i=1600(20%) end=200312-17:21:46
---end - Tue Mar 20 17:21:46 2012
(没建立索引下的tps)
oracle@linux-0ygf:~/orabm/bin> ./orabm_tps.sh linux/orabm.orcl.log
ORACLE_SID=orcl sess=1 tps=28
ORACLE_SID=orcl sess=2 tps=54
ORACLE_SID=orcl sess=6 tps=92
ORACLE_SID=orcl sess=10 tps=95

建立索引:
SQL> !ls
_vti_cnf           orabm_ind.sql                orabm_tab.sql
orabm_analyze.sql  orabm_query_cache.sql        orabm_tab_rm.sql
orabm_cache.sql    orabm_serverside_stress.sql  orabm_user.sql

SQL> start orabm_ind.sql

Session altered.


Index created.


Index created.


Index created.


Index created.


Index created.


Index created.


Index created.


Index created.


Index created.


Index created.

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

分析表和索引

oracle@linux-0ygf:~/orabm/bin/linux> ./orabm.10g.linux 1,2,6,10 10000
---begin sess=1 txn=10000 ORACLE_SID=orcl Tue Mar 20 17:34:11 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=5 tps=1600 sl=4073(50.9%) n=2386(29.8%) i=1540(19.3%) end=200312-17:34:18
---end - Tue Mar 20 17:34:18 2012
---begin sess=2 txn=10000 ORACLE_SID=orcl Tue Mar 20 17:34:18 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=5 tps=1600 sl=3922(49%) n=2490(31.1%) i=1587(19.8%) end=200312-17:34:24
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=5 tps=1600 sl=3931(49.1%) n=2429(30.4%) i=1639(20.5%) end=200312-17:34:24
---end - Tue Mar 20 17:34:24 2012
---begin sess=6 txn=10000 ORACLE_SID=orcl Tue Mar 20 17:34:24 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=6 tps=1333 sl=3995(49.9%) n=2360(29.5%) i=1644(20.6%) end=200312-17:34:31
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=7 tps=1143 sl=4013(50.2%) n=2406(30.1%) i=1580(19.8%) end=200312-17:34:33
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=7 tps=1143 sl=3999(50%) n=2382(29.8%) i=1618(20.2%) end=200312-17:34:33
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=7 tps=1143 sl=4000(50%) n=2450(30.6%) i=1549(19.4%) end=200312-17:34:33
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=9 tps=889 sl=4029(50.4%) n=2422(30.3%) i=1548(19.4%) end=200312-17:34:34
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=9 tps=889 sl=4064(50.8%) n=2350(29.4%) i=1585(19.8%) end=200312-17:34:37
---end - Tue Mar 20 17:34:37 2012
---begin sess=10 txn=10000 ORACLE_SID=orcl Tue Mar 20 17:34:37 2012
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=7 tps=1143 sl=3950(49.4%) n=2407(30.1%) i=1642(20.5%) end=200312-17:34:45
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=8 tps=1000 sl=4093(51.2%) n=2358(29.5%) i=1548(19.4%) end=200312-17:34:46
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=8 tps=1000 sl=3930(49.1%) n=2379(29.7%) i=1690(21.1%) end=200312-17:34:49
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=10 tps=800 sl=3995(49.9%) n=2412(30.2%) i=1592(19.9%) end=200312-17:34:50
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=11 tps=727 sl=4027(50.3%) n=2373(29.7%) i=1599(20%) end=200312-17:34:50
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=6 tps=1333 sl=4082(51%) n=2381(29.8%) i=1536(19.2%) end=200312-17:34:50
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=9 tps=889 sl=4028(50.4%) n=2380(29.8%) i=1591(19.9%) end=200312-17:34:50
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=8 tps=1000 sl=4010(50.1%) n=2408(30.1%) i=1581(19.8%) end=200312-17:34:51
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=15 tps=533 sl=4070(50.9%) n=2406(30.1%) i=1523(19%) end=200312-17:34:52
ORCL txn(all)=10000 xn(sam)=7999 t(sam)=10 tps=800 sl=3987(49.8%) n=2396(30%) i=1616(20.2%) end=200312-17:34:53
---end - Tue Mar 20 17:34:53 2012

oracle@linux-0ygf:~/orabm/bin/linux> ./orabm.10g.linux 1,2,6,8,10,15 200000
。。。。。。。。
oracle@linux-0ygf:~/orabm/bin> ./orabm_tps.sh  linux/orabm.orcl.log
此处是未建立索引的情况,后面三个为建立索引的情况
ORACLE_SID=orcl sess=1 tps=28
ORACLE_SID=orcl sess=2 tps=54
ORACLE_SID=orcl sess=6 tps=92
ORACLE_SID=orcl sess=10 tps=95

ORACLE_SID=orcl sess=1 tps=1600
ORACLE_SID=orcl sess=2 tps=3200
ORACLE_SID=orcl sess=6 tps=6540
ORACLE_SID=orcl sess=10 tps=9225

ORACLE_SID=orcl sess=1 tps=2000
ORACLE_SID=orcl sess=2 tps=3200
ORACLE_SID=orcl sess=6 tps=7109
ORACLE_SID=orcl sess=10 tps=7003

ORACLE_SID=orcl sess=1 tps=1798
ORACLE_SID=orcl sess=2 tps=3596
ORACLE_SID=orcl sess=6 tps=6471
ORACLE_SID=orcl sess=8 tps=6221
ORACLE_SID=orcl sess=10 tps=6806
ORACLE_SID=orcl sess=15 tps=7059

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22779291/viewspace-719080/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22779291/viewspace-719080/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值