« 如何实施Benchmark标准测试-问题的提出及Tpc-C标准 | Blog首页 | 使用orabm进行CPU压力测试... »
使用orastress!进行数据库压力测试
链接:https://www.eygle.com/archives/2004/10/use_orastress_2test_oracledb.html
Orastress!的作者是Geoff Ingram,也就是我们前面介绍的orabm的作者,他曾经为Oracle工作数年,是High Performance Oracle" (ISBN: 0471224367)一书的作者.
该书现在你可以在本站下载.
关于该工具的官方网页在这里可以找到:
http://www.linxcel.co.uk/orabm/index.html
该工具不是开源的,缺省的只能使用一个session测试,你可以从作者那里申请临时Key,通过以下页面我们可以获得7天的无功能限制使用版:
http://www.linxcel.co.uk/7505/10218_trialkey_orastress!.html
Orastress!需要在windows上运行,你需要安装Oracle客户端.
收到Key以后,注册方式如下:
C:\orabm>orastress!
|
Orastress!需要的数据和orabm类似,你可以参考Orabm的安装方式.
# |
Operation |
Command |
1 |
create the ORABM user (assumes TOOLS tablespace, TEMP temporary tablespace) |
sqlplus system/pwd @orabm_user |
2 |
create the tables |
sqlplus system/pwd @orabm_tab |
3 |
load the data |
$ orabmload Warehouses n |
4 |
create the indexes |
sqlplus system/pwd @orabm_ind |
5 |
analyze the tables and indexes |
sqlplus system/pwd @orabm_analyze |
6 |
Ensure ORABM can run the DBMS_LOCK package |
As SYS run: GRANT EXECUTE ON DBMS_LOCK TO ORABM |
注意:这里构建的如果是10个Warehouses的数据,那么大约需要1G的空间.
这里我建议对单节点数据库分别采用1,2,3,5,10个Warehouses进行1,2,4,6,10个并发的50000个事务的测试.
对于多节点RAC建议采用1,2,3,5,10个Warehouses进行1,3,4,7,10个并发的50000个事务的测试.
这一部分安装日志可以参考:安装日志
得到测试数据以后,还需要运行如下脚本:
sqlplus orabm/orabm@<your-TNS-alias> @orastress_tab.sql
sqlplus orabm/orabm@<your-TNS-alias> @orastress.plh
日志参考:windows日志
命令行执行方式如下:
orastress! –s sess-iterations-list –t transacts-per-sess –c tns-alias-list –m mode [ -s batchsize]
-s 指定session数量
-t 指定每个session执行的事物数量.
-c 指定联结串
-m 指定运行模式.包括Read OLTP INS DIO
-s 指定对于INS或DIO模式下提交批量,缺省是10000里
Note: 如果 Orastress! 对单个Warehouse运行在read模式,那么代码执行和orabm相同.
Example 1:
orastress! –s 1 –t 50000 –c inst1.world –m oltp
Example 2:
orastress! –s 2 –t 50000 –c inst1.world,inst2.world –m oltp
Run one iteration comprising 2 concurrent sessions of 50000 transactions on each of inst1.world,inst2.world giving a total of 4 concurrent sessions.The location of the instances specified by inst1.world,inst2.world is entirely down to the user. They could be:
运行一组测试,对两个数据库(inst1.world,inst2.world)各发出两个并发session,每个session运行50000个事务,这两个数据库可以是:
orastress! –s 1,2,4 –t 50000 –c inst1,inst2,inst3,inst4 –m read
运行3组测试,分别以1,2,4个并发session对四个实例,各执行50000个事务:
1st iteration: 1 concurrent session on each instance, giving 4 sessions total
2nd iteration: 2 concurrent sessions on each instance, giving 8 sessions total
3rd iteration: 4 concurrent sessions on each instance, giving 16 sessions
Results Output--输出结果:
输出结果和orabm非常类似,具体参考:
---begin mode=oltp sess=1 txn=5000 TNS=l Fri Sep 19 22:11:06 2003
LXD1.WORLD #1 w=3 txn(all)=5000 xn(sam)=3999 t(sam)=431 tps=92.8 end=190903-12:25:39
---end - Fri Sep 19 22:20:19 2003
对于Benchmark测试来说,最重要的是标准,如果大家有统一的模型及标准,那么测试数据也就有了意义,否则以不同的并发、数据进行各不相同的测试是不具有太大意义的.
标准、比较、参考,这对于测试来说是最重要的.
以下给出我的一些测试数据:
1.10个Warehouse的测试数据
E:\OraDoc\ORACLE~4\BENCHM~1\ORASTR~1>"orastress!.exe" -s 1 -t 300 -c hsbill -m oltp ---begin mode=oltp sess=1 txn=300 TNS=hsbill Thu Sep 30 10:35:09 2004 HSBILL.HURRAY.COM.CN#1 w=3 txn(all)=300 xn(sam)=239 t(sam)=120 tps=2 d=13(5.4%) n=102(42.7%) o=6(2.5%) p=112(46.9%) s=6(2.5%) end= 300904-10:34:38 ---end - Thu Sep 30 10:37:39 2004 E:\OraDoc\ORACLE~4\BENCHM~1\ORASTR~1>"orastress!.exe" -s 2 -t 300 -c hsbill -m oltp ---begin mode=oltp sess=2 txn=300 TNS=hsbill Thu Sep 30 10:41:40 2004 HSBILL.HURRAY.COM.CN#1 w=4 txn(all)=300 xn(sam)=239 t(sam)=469 tps=.5 d=12(5%) n=103(43.1%) o=13(5.4%) p=101(42.3%) s=10(4.2%) end =300904-10:47:25 HSBILL.HURRAY.COM.CN#1 w=4 txn(all)=300 xn(sam)=239 t(sam)=314 tps=.8 d=11(4.6%) n=92(38.5%) o=10(4.2%) p=119(49.8%) s=7(2.9%) end =300904-10:47:51 ---end - Thu Sep 30 10:50:51 2004 E:\OraDoc\ORACLE~4\BENCHM~1\ORASTR~1>"orastress!.exe" -s 2 -t 3000 -c hsbill -m oltp ---begin mode=oltp sess=2 txn=3000 TNS=hsbill Thu Sep 30 11:26:02 2004 HSBILL.HURRAY.COM.CN#1 w=8 txn(all)=3000 xn(sam)=2399 t(sam)=4991 tps=.5 d=109(4.5%) n=1016(42.4%) o=116(4.8%) p=1050(43.8%) s=108 (4.5%) end=300904-13:09:23 HSBILL.HURRAY.COM.CN#1 w=4 txn(all)=3000 xn(sam)=2399 t(sam)=5432 tps=.4 d=87(3.6%) n=997(41.6%) o=128(5.3%) p=1070(44.6%) s=117(4 .9%) end=300904-13:13:50 ---end - Thu Sep 30 13:16:51 2004 |
2.5个warehouse的测试数据
E:\OraDoc\ORACLE~4\BENCHM~1\ORASTR~1>"orastress!.exe" -s 2 -t 300 -c hsbill -m oltp ---begin mode=oltp sess=2 txn=300 TNS=hsbill Thu Sep 30 15:48:20 2004 HSBILL.HURRAY.COM.CN#1 w=2 txn(all)=300 xn(sam)=239 t(sam)=13 tps=18.4 d=7(2.9%) n=97(40.6%) o=9(3.8%) p=119(49.8%) s=7(2.9%) end= 300904-15:45:40 HSBILL.HURRAY.COM.CN#1 w=5 txn(all)=300 xn(sam)=239 t(sam)=19 tps=12.6 d=7(2.9%) n=97(40.6%) o=11(4.6%) p=112(46.9%) s=12(5%) end= 300904-15:45:47 ---end - Thu Sep 30 15:48:47 2004 |
历史上的今天...
>> 2019-10-18文章:
>> 2012-10-18文章:
>> 2010-10-18文章:
>> 2008-10-18文章:
>> 2007-10-18文章:
>> 2006-10-18文章:
>> 2005-10-18文章:
By eygle on 2004-10-18 12:35 | Comments (3) | Special | 70 |
到官网申请orastress 的key。一直收不到。很难等,不知道怎么解决,急着用这个软件。
文章中“性能测试指标介绍”这个的链接地址失效了
盖老师,你好。你这里说:
这里我建议对单节点数据库分别采用1,2,3,5,10个Warehouses进行1,2,4,6,10个并发的50000个事务的测试.
对于多节点RAC建议采用1,2,3,5,10个Warehouses进行1,3,4,7,10个并发的50000个事务的测试.
那我现在想对一个40C的机器进行测试的话,50个会话,或者100个会话进行并发压力测试,是否就要安装50或者100个Warehouses?
还想问一下,40C的机器,多少并发会话才合适了?