<p><span style="font-size: x-small;">数据库压力测试</span>
</p>
<p><span style="font-size: x-small;">一、用orabm测试数据库CPU<br>
Orabm通过在用户指定的并发下运行指定数量的事务来测试系统性能.它主要测试数据库服务器的CPU性能和内存。<br>
orabm实际上是一堆sql的集合。<br>
orabm可以用在linux/windows/solaris下使用。<br>
orabm不一定需要运行在数据库所在服务器上,它可以运行在任何安装了9i客户端的终端上。你可以用客户端连接到远程数据库来测试远程数据库的性能状况。</span>
</p>
<p><span style="font-size: x-small;">因
为orabm主要测试的是CPU和内存,所以应该尽量避免其他因素影响测试,故使用orabm时,为了更好的测试CPU和内存的性能,最好把
db_cache_size设成大于200M,这样,所有的数据都可以放在内存中,不会因为物理I/O而使得测试不准确。使用orabm的一个步骤就是把
所有的表和索引都放到data buffer中。</span>
</p>
<p><span style="font-size: x-small;">1、下载软件<br>
orabm是测试CPU得</span>
<a href="http://www.linxcel.co.uk/orabm/orabm.tar"><span style="font-size: x-small;">http://www.linxcel.co.uk/orabm/orabm.tar</span>
</a>
</p>
<p><span style="font-size: x-small;">2、安装<br>
安装主要分7个步骤,分别对应6个sql脚本和一个导入数据的小工具。如下所有脚本除第一个必须用拥有dba权限的用户执行外,其他的都可以用新建orabm用户执行。为了避免麻烦,最好都用system或者sys运行</span>
</p>
<p><span style="font-size: x-small;">1) create the ORABM user (assumes TOOLS tablespace, TEMP temporary tablespace) <br>
第
一步是创建orabm用户,并作相应授权。注意,默认情况下,orabm用户的默认表空间是tools,临时表空间是temp。导入一个
Warehouses的数据量大概是100M,所以,你应该保证tools表空间大于150m,或者新建一个表空间,然后修改
orabm_user.sql里的相关信息。<br>
sqlplus system/pwd @orabm_user <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_user </span>
</p>
<p><span style="font-size: x-small;">2) create the tables <br>
这一步主要创建orabm测试需要的表。<br>
sqlplus system/pwd @orabm_tab <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_tag </span>
</p>
<p><span style="font-size: x-small;">3) Load the data <br>
导入测试所需的数据(orabmload在OS的对应版本的bin目录下)<br>
$ orabmload Warehouses 1 <br>
远程数据库使用:<br>
如果要测试的是远程数据库的话,<br>
windows需要先set local=tnsname,tnsname是在tnsname.ora中配置的远程数据库的别名。<br>
UNIX/LIINUX,需要先TWO_TASK=tnsname<br>
$ orabmload Warehouses 1 </span>
</p>
<p><span style="font-size: x-small;">4) create the indexes <br>
这一步创建索引<br>
sqlplus system/pwd @orabm_ind <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_ind </span>
</p>
<p><span style="font-size: x-small;">5) analyze the tables and indexes <br>
分析表和索引<br>
sqlplus system/pwd @orabm_analyze <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_analyze </span>
</p>
<p><span style="font-size: x-small;">6) create the stress-test PL/SQL procedures <br>
创建压力测试所需的存储过程<br>
sqlplus system/pwd @orabm_serverside_stress <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_serverside_stress </span>
</p>
<p><span style="font-size: x-small;">7) cache the table and index data in the SGA <br>
把表和索引都放到SGA中,原因在上文已经介绍了。<br>
sqlplus system/pwd @orabm_cache<br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_cache </span>
</p>
<p><span style="font-size: x-small;">执行完这7个步骤,orabm的测试环境就算配置完成了。</span>
</p>
<p><span style="font-size: x-small;">3、测试<br>
现在我们就可以进行测试了。设置好ORACLE_SID,然后进入到OS对应的版本的bin目录下:<br>
如果测试本地数据库:<br>
$ orabm 1 20000 </span>
</p>
<p><span style="font-size: x-small;">如果测试远程数据库,则执行<br>
C:> orabm 1 20000 tnsname<br>
注意不要加"@"</span>
</p>
<p><span style="font-size: x-small;">orabm后接2个参数(如果测试远程的压力则接三个参数)。<br>
第一个参数表示测试多少个并发(对应多个session)<br>
第二个参数表示执行多少个事务(注意:不是所有的并发共执行多少事务,而是每个并发执行的事务数),一般来说,这个值设置为10000<br>
第三个参数是在测试远程数据库的时候用的,值为tnsnames.ora配置的远程数据库连接的别名</span>
</p>
<p><span style="font-size: x-small;">orabm 2 1000<br>
表示用2个并发执行1000个事务</span>
</p>
<p><span style="font-size: x-small;">orabm 1,2,6,10 1000<br>
表示分别用1、2、6、19个并发执行1000个事务</span>
</p>
<p><span style="font-size: x-small;">执行的结果会打印在屏幕上,同时写到orabm所在目录的orabm.<oracle_sid>.log。如果执行多次,则多次的执行结果都会追加到orabm.<oracle_sid>.log中。</span>
</p>
<p><span style="font-size: x-small;">TPS 是Transactions Per Second 的 缩 写, 也 就 是 事 务 数/ 秒<br>
tps的计算:每一个阶段所有session的tps相加就是当前测试的总tps了。</span>
</p>
<p><span style="font-size: x-small;">下面是一个测试实例:<br>
环境配置如下:<br>
CPU P4 2.6<br>
MEM: 1G<br>
OS: WINDOWS XP SP2<br>
DATABASE: 9201<br>
SGA:300M<br>
LOGFILE: 100M<br>
LOG_BUFFER: 3M</span>
</p>
<p><span style="font-size: x-small;">D:programeroracle tools压力orabmbinwindows>orabm 1,2,6,10,15,20,25,30 1000<br>
0<br>
---begin sess=1 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:47:54 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=15 tps=533 sl=3966(49.6%) on=2478(31<br>
%) oi=1555(19.4%) end=200906-17:48:13<br>
---end - Wed Sep 20 17:48:13 2006<br>
---begin sess=2 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:48:13 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=28 tps=286 sl=3933(49.2%) on=2436(30<br>
.5%) oi=1630(20.4%) end=200906-17:48:48<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=28 tps=286 sl=3925(49.1%) on=2422(30<br>
.3%) oi=1652(20.7%) end=200906-17:48:48<br>
---end - Wed Sep 20 17:48:48 2006<br>
---begin sess=6 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:48:48 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=80 tps=100 sl=3978(49.7%) on=2415(30<br>
.2%) oi=1606(20.1%) end=200906-17:50:28<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=77 tps=104 sl=4016(50.2%) on=2417(30<br>
.2%) oi=1566(19.6%) end=200906-17:50:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=79 tps=101 sl=4078(51%) on=2374(29.7<br>
%) oi=1547(19.3%) end=200906-17:50:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=86 tps=93 sl=3993(49.9%) on=2376(29.<br>
7%) oi=1630(20.4%) end=200906-17:50:31<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=84 tps=95 sl=4049(50.6%) on=2321(29%<br>
) oi=1629(20.4%) end=200906-17:50:31<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=86 tps=93 sl=3963(49.5%) on=2420(30.<br>
3%) oi=1616(20.2%) end=200906-17:50:31<br>
---end - Wed Sep 20 17:50:31 2006<br>
---begin sess=10 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:50:31 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=112 tps=71 sl=4005(50.1%) on=2391(29<br>
.9%) oi=1603(20%) end=200906-17:52:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=126 tps=63 sl=3994(49.9%) on=2433(30<br>
.4%) oi=1572(19.7%) end=200906-17:53:05<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=125 tps=64 sl=3979(49.7%) on=2470(30<br>
.9%) oi=1550(19.4%) end=200906-17:53:09<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=131 tps=61 sl=4030(50.4%) on=2361(29<br>
.5%) oi=1608(20.1%) end=200906-17:53:13<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=134 tps=60 sl=3992(49.9%) on=2390(29<br>
.9%) oi=1617(20.2%) end=200906-17:53:14<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=135 tps=59 sl=3998(50%) on=2352(29.4<br>
%) oi=1649(20.6%) end=200906-17:53:15<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=138 tps=58 sl=3962(49.5%) on=2421(30<br>
.3%) oi=1616(20.2%) end=200906-17:53:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=138 tps=58 sl=3999(50%) on=2412(30.2<br>
%) oi=1588(19.9%) end=200906-17:53:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=136 tps=59 sl=3988(49.9%) on=2484(31<br>
.1%) oi=1527(19.1%) end=200906-17:53:18<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=143 tps=56 sl=3992(49.9%) on=2365(29<br>
.6%) oi=1642(20.5%) end=200906-17:53:18<br>
---end - Wed Sep 20 17:53:18 2006<br>
---begin sess=15 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:53:18 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=168 tps=48 sl=4029(50.4%) on=2377(29<br>
.7%) oi=1593(19.9%) end=200906-17:56:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=170 tps=47 sl=4023(50.3%) on=2406(30<br>
.1%) oi=1570(19.6%) end=200906-17:56:52<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=172 tps=47 sl=3932(49.2%) on=2484(31<br>
.1%) oi=1583(19.8%) end=200906-17:57:01<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=191 tps=42 sl=4014(50.2%) on=2461(30<br>
.8%) oi=1524(19.1%) end=200906-17:57:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=198 tps=40 sl=3993(49.9%) on=2396(30<br>
%) oi=1610(20.1%) end=200906-17:57:19<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=192 tps=42 sl=4000(50%) on=2392(29.9<br>
%) oi=1607(20.1%) end=200906-17:57:19<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=202 tps=40 sl=3996(50%) on=2390(29.9<br>
%) oi=1613(20.2%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=195 tps=41 sl=4023(50.3%) on=2365(29<br>
.6%) oi=1611(20.1%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=200 tps=40 sl=3962(49.5%) on=2411(30<br>
.1%) oi=1626(20.3%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=203 tps=39 sl=4039(50.5%) on=2385(29<br>
.8%) oi=1575(19.7%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=198 tps=40 sl=3998(50%) on=2406(30.1<br>
%) oi=1595(19.9%) end=200906-17:57:22<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=204 tps=39 sl=4025(50.3%) on=2364(29<br>
.6%) oi=1610(20.1%) end=200906-17:57:22<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=208 tps=38 sl=3944(49.3%) on=2475(30<br>
.9%) oi=1580(19.8%) end=200906-17:57:23<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=201 tps=40 sl=3944(49.3%) on=2448(30<br>
.6%) oi=1607(20.1%) end=200906-17:57:23<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=217 tps=37 sl=3960(49.5%) on=2451(30<br>
.6%) oi=1588(19.9%) end=200906-17:57:24<br>
---end - Wed Sep 20 17:57:24 2006<br>
---begin sess=20 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:57:24 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=208 tps=38 sl=4033(50.4%) on=2308(28<br>
.9%) oi=1658(20.7%) end=200906-18:01:49<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=254 tps=31 sl=4093(51.2%) on=2382(29<br>
.8%) oi=1524(19.1%) end=200906-18:02:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=257 tps=31 sl=3988(49.9%) on=2416(30<br>
.2%) oi=1595(19.9%) end=200906-18:02:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=252 tps=32 sl=4088(51.1%) on=2375(29<br>
.7%) oi=1536(19.2%) end=200906-18:02:42<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=260 tps=31 sl=3970(49.6%) on=2422(30<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=272 tps=29 sl=4005(50.1%) on=2402(30<br>
%) oi=1592(19.9%) end=200906-18:02:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=280 tps=29 sl=4002(50%) on=2420(30.3<br>
%) oi=1577(19.7%) end=200906-18:02:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=276 tps=29 sl=3981(49.8%) on=2428(30<br>
.4%) oi=1590(19.9%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=289 tps=28 sl=3974(49.7%) on=2399(30<br>
%) oi=1626(20.3%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=276 tps=29 sl=4027(50.3%) on=2379(29<br>
.7%) oi=1593(19.9%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=272 tps=29 sl=4031(50.4%) on=2399(30<br>
%) oi=1569(19.6%) end=200906-18:02:56<br>
---end - Wed Sep 20 18:02:56 2006<br>
---begin sess=25 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 18:02:56 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=235 tps=34 sl=3996(50%) on=2414(30.2<br>
%) oi=1589(19.9%) end=200906-18:07:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=242 tps=33 sl=3997(50%) on=2408(30.1<br>
%) oi=1594(19.9%) end=200906-18:07:57<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=308 tps=26 sl=4058(50.7%) on=2387(29<br>
.8%) oi=1554(19.4%) end=200906-18:09:16<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=305 tps=26 sl=3959(49.5%) on=2433(30<br>
.4%) oi=1607(20.1%) end=200906-18:09:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=307 tps=26 sl=4051(50.6%) on=2387(29<br>
.8%) oi=1561(19.5%) end=200906-18:09:26<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=327 tps=24 sl=3972(49.7%) on=2444(30<br>
.6%) oi=1583(19.8%) end=200906-18:09:26<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=330 tps=24 sl=4022(50.3%) on=2387(29<br>
.8%) oi=1590(19.9%) end=200906-18:09:27<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=312 tps=26 sl=3973(49.7%) on=2413(30<br>
.2%) oi=1613(20.2%) end=200906-18:09:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=320 tps=25 sl=4050(50.6%) on=2378(29<br>
.7%) oi=1571(19.6%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=314 tps=25 sl=4005(50.1%) on=2366(29<br>
.6%) oi=1628(20.4%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=314 tps=25 sl=4005(50.1%) on=2366(29<br>
.6%) oi=1628(20.4%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=332 tps=24 sl=3965(49.6%) on=2409(30<br>
.1%) oi=1625(20.3%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=317 tps=25 sl=3997(50%) on=2424(30.3<br>
%) oi=1578(19.7%) end=200906-18:09:32<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=316 tps=25 sl=3970(49.6%) on=2384(29<br>
.8%) oi=1645(20.6%) end=200906-18:09:33<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=350 tps=23 sl=3966(49.6%) on=2449(30<br>
.6%) oi=1584(19.8%) end=200906-18:09:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=350 tps=23 sl=4030(50.4%) on=2328(29<br>
.1%) oi=1641(20.5%) end=200906-18:09:42<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=353 tps=23 sl=4027(50.3%) on=2414(30<br>
.2%) oi=1558(19.5%) end=200906-18:09:43<br>
---end - Wed Sep 20 18:09:43 2006<br>
---begin sess=30 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 18:09:43 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=286 tps=28 sl=3942(49.3%) on=2392(29<br>
.9%) oi=1665(20.8%) end=200906-18:15:35<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=288 tps=28 sl=4001(50%) on=2396(30%)<br>
oi=1602(20%) end=200906-18:15:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=286 tps=28 sl=3912(48.9%) on=2444(30<br>
.6%) oi=1643(20.5%) end=200906-18:15:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=373 tps=21 sl=4007(50.1%) on=2408(30<br>
.1%) oi=1584(19.8%) end=200906-18:17:24<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=372 tps=22 sl=4012(50.2%) on=2375(29<br>
.7%) oi=1612(20.2%) end=200906-18:17:25<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=371 tps=22 sl=3987(49.8%) on=2386(29<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=384 tps=21 sl=4020(50.3%) on=2389(29<br>
.9%) oi=1590(19.9%) end=200906-18:17:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=395 tps=20 sl=4002(50%) on=2418(30.2<br>
%) oi=1579(19.7%) end=200906-18:17:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=394 tps=20 sl=4037(50.5%) on=2406(30<br>
.1%) oi=1556(19.5%) end=200906-18:17:45<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=390 tps=21 sl=3959(49.5%) on=2389(29<br>
.9%) oi=1651(20.6%) end=200906-18:17:45<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=395 tps=20 sl=3978(49.7%) on=2409(30<br>
.1%) oi=1612(20.2%) end=200906-18:17:47<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=409 tps=20 sl=3988(49.9%) on=2393(29<br>
.9%) oi=1618(20.2%) end=200906-18:17:49<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=391 tps=20 sl=4005(50.1%) on=2407(30<br>
.1%) oi=1587(19.8%) end=200906-18:17:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=387 tps=21 sl=4024(50.3%) on=2433(30<br>
.4%) oi=1542(19.3%) end=200906-18:17:53<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=394 tps=20 sl=3962(49.5%) on=2407(30<br>
.1%) oi=1630(20.4%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=404 tps=20 sl=3991(49.9%) on=2371(29<br>
.6%) oi=1637(20.5%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=402 tps=20 sl=4066(50.8%) on=2386(29<br>
.8%) oi=1547(19.3%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=409 tps=20 sl=3943(49.3%) on=2545(31<br>
.8%) oi=1511(18.9%) end=200906-18:17:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=399 tps=20 sl=4013(50.2%) on=2422(30<br>
.3%) oi=1564(19.6%) end=200906-18:17:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=415 tps=19 sl=3964(49.6%) on=2425(30<br>
.3%) oi=1610(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=415 tps=19 sl=3982(49.8%) on=2408(30<br>
.1%) oi=1609(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=407 tps=20 sl=4017(50.2%) on=2431(30<br>
.4%) oi=1551(19.4%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=427 tps=19 sl=4024(50.3%) on=2368(29<br>
.6%) oi=1607(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=420 tps=19 sl=4000(50%) on=2397(30%)<br>
oi=1602(20%) end=200906-18:17:57<br>
---end - Wed Sep 20 18:17:57 2006</span>
</p>
<p><span style="font-size: x-small;">其中:<br>
txn(all)----代表Total transaction Count,总的事务数量.<br>
xn(sam)-----采样的事务数量<br>
t(sam)------采样事务运行的时间. </span>
</p>
<p><span style="font-size: x-small;">这个结果太乱,我们可以用orabm提供的脚本orabm_tps.sh格式化一下:<br>
这个脚本一般在linux才可用,本人的机器在windows下安装了一些linux加强工具,所以可以正常运行这个脚本<br>
D:programeroracle tools压力orabmbin>orabm_tps.sh orabm.oracle9i.log<br>
ORACLE_SID=oracle9i sess=1 tps=500<br>
ORACLE_SID=oracle9i sess=3 tps=576<br>
ORACLE_SID=oracle9i sess=1 tps=533<br>
ORACLE_SID=oracle9i sess=2 tps=572<br>
ORACLE_SID=oracle9i sess=6 tps=586<br>
ORACLE_SID=oracle9i sess=10 tps=609<br>
ORACLE_SID=oracle9i sess=15 tps=620<br>
ORACLE_SID=oracle9i sess=20 tps=610<br>
ORACLE_SID=oracle9i sess=25 tps=631<br>
ORACLE_SID=oracle9i sess=30 tps=632</span>
</p>
<p><span style="font-size: x-small;">在执行不要执行其他程序,正常情况下,无论多少个并发,CPU的利用率应该在100%<br>
从结果可以看出,本机的tps在610左右。</span>
</p>
<p><span style="font-size: x-small;">并非并发数越多,tps就越大,有时候随着并发的增多,tps反而减小。<br>
如果发现随着并发的增大,tps并没有明显增加,或者反而减小了,则说明已经到了系统的瓶颈了。这个临界点可以看作是系统的所能承受最大tps了。</span>
</p>
</p>
<p><span style="font-size: x-small;">一、用orabm测试数据库CPU<br>
Orabm通过在用户指定的并发下运行指定数量的事务来测试系统性能.它主要测试数据库服务器的CPU性能和内存。<br>
orabm实际上是一堆sql的集合。<br>
orabm可以用在linux/windows/solaris下使用。<br>
orabm不一定需要运行在数据库所在服务器上,它可以运行在任何安装了9i客户端的终端上。你可以用客户端连接到远程数据库来测试远程数据库的性能状况。</span>
</p>
<p><span style="font-size: x-small;">因
为orabm主要测试的是CPU和内存,所以应该尽量避免其他因素影响测试,故使用orabm时,为了更好的测试CPU和内存的性能,最好把
db_cache_size设成大于200M,这样,所有的数据都可以放在内存中,不会因为物理I/O而使得测试不准确。使用orabm的一个步骤就是把
所有的表和索引都放到data buffer中。</span>
</p>
<p><span style="font-size: x-small;">1、下载软件<br>
orabm是测试CPU得</span>
<a href="http://www.linxcel.co.uk/orabm/orabm.tar"><span style="font-size: x-small;">http://www.linxcel.co.uk/orabm/orabm.tar</span>
</a>
</p>
<p><span style="font-size: x-small;">2、安装<br>
安装主要分7个步骤,分别对应6个sql脚本和一个导入数据的小工具。如下所有脚本除第一个必须用拥有dba权限的用户执行外,其他的都可以用新建orabm用户执行。为了避免麻烦,最好都用system或者sys运行</span>
</p>
<p><span style="font-size: x-small;">1) create the ORABM user (assumes TOOLS tablespace, TEMP temporary tablespace) <br>
第
一步是创建orabm用户,并作相应授权。注意,默认情况下,orabm用户的默认表空间是tools,临时表空间是temp。导入一个
Warehouses的数据量大概是100M,所以,你应该保证tools表空间大于150m,或者新建一个表空间,然后修改
orabm_user.sql里的相关信息。<br>
sqlplus system/pwd @orabm_user <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_user </span>
</p>
<p><span style="font-size: x-small;">2) create the tables <br>
这一步主要创建orabm测试需要的表。<br>
sqlplus system/pwd @orabm_tab <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_tag </span>
</p>
<p><span style="font-size: x-small;">3) Load the data <br>
导入测试所需的数据(orabmload在OS的对应版本的bin目录下)<br>
$ orabmload Warehouses 1 <br>
远程数据库使用:<br>
如果要测试的是远程数据库的话,<br>
windows需要先set local=tnsname,tnsname是在tnsname.ora中配置的远程数据库的别名。<br>
UNIX/LIINUX,需要先TWO_TASK=tnsname<br>
$ orabmload Warehouses 1 </span>
</p>
<p><span style="font-size: x-small;">4) create the indexes <br>
这一步创建索引<br>
sqlplus system/pwd @orabm_ind <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_ind </span>
</p>
<p><span style="font-size: x-small;">5) analyze the tables and indexes <br>
分析表和索引<br>
sqlplus system/pwd @orabm_analyze <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_analyze </span>
</p>
<p><span style="font-size: x-small;">6) create the stress-test PL/SQL procedures <br>
创建压力测试所需的存储过程<br>
sqlplus system/pwd @orabm_serverside_stress <br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_serverside_stress </span>
</p>
<p><span style="font-size: x-small;">7) cache the table and index data in the SGA <br>
把表和索引都放到SGA中,原因在上文已经介绍了。<br>
sqlplus system/pwd @orabm_cache<br>
远程数据库使用:<br>
sqlplus </span>
<a href="mailto:system/pwd@tnsname"><span style="font-size: x-small;">system/pwd@tnsname</span>
</a>
<span style="font-size: x-small;"> @orabm_cache </span>
</p>
<p><span style="font-size: x-small;">执行完这7个步骤,orabm的测试环境就算配置完成了。</span>
</p>
<p><span style="font-size: x-small;">3、测试<br>
现在我们就可以进行测试了。设置好ORACLE_SID,然后进入到OS对应的版本的bin目录下:<br>
如果测试本地数据库:<br>
$ orabm 1 20000 </span>
</p>
<p><span style="font-size: x-small;">如果测试远程数据库,则执行<br>
C:> orabm 1 20000 tnsname<br>
注意不要加"@"</span>
</p>
<p><span style="font-size: x-small;">orabm后接2个参数(如果测试远程的压力则接三个参数)。<br>
第一个参数表示测试多少个并发(对应多个session)<br>
第二个参数表示执行多少个事务(注意:不是所有的并发共执行多少事务,而是每个并发执行的事务数),一般来说,这个值设置为10000<br>
第三个参数是在测试远程数据库的时候用的,值为tnsnames.ora配置的远程数据库连接的别名</span>
</p>
<p><span style="font-size: x-small;">orabm 2 1000<br>
表示用2个并发执行1000个事务</span>
</p>
<p><span style="font-size: x-small;">orabm 1,2,6,10 1000<br>
表示分别用1、2、6、19个并发执行1000个事务</span>
</p>
<p><span style="font-size: x-small;">执行的结果会打印在屏幕上,同时写到orabm所在目录的orabm.<oracle_sid>.log。如果执行多次,则多次的执行结果都会追加到orabm.<oracle_sid>.log中。</span>
</p>
<p><span style="font-size: x-small;">TPS 是Transactions Per Second 的 缩 写, 也 就 是 事 务 数/ 秒<br>
tps的计算:每一个阶段所有session的tps相加就是当前测试的总tps了。</span>
</p>
<p><span style="font-size: x-small;">下面是一个测试实例:<br>
环境配置如下:<br>
CPU P4 2.6<br>
MEM: 1G<br>
OS: WINDOWS XP SP2<br>
DATABASE: 9201<br>
SGA:300M<br>
LOGFILE: 100M<br>
LOG_BUFFER: 3M</span>
</p>
<p><span style="font-size: x-small;">D:programeroracle tools压力orabmbinwindows>orabm 1,2,6,10,15,20,25,30 1000<br>
0<br>
---begin sess=1 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:47:54 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=15 tps=533 sl=3966(49.6%) on=2478(31<br>
%) oi=1555(19.4%) end=200906-17:48:13<br>
---end - Wed Sep 20 17:48:13 2006<br>
---begin sess=2 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:48:13 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=28 tps=286 sl=3933(49.2%) on=2436(30<br>
.5%) oi=1630(20.4%) end=200906-17:48:48<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=28 tps=286 sl=3925(49.1%) on=2422(30<br>
.3%) oi=1652(20.7%) end=200906-17:48:48<br>
---end - Wed Sep 20 17:48:48 2006<br>
---begin sess=6 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:48:48 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=80 tps=100 sl=3978(49.7%) on=2415(30<br>
.2%) oi=1606(20.1%) end=200906-17:50:28<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=77 tps=104 sl=4016(50.2%) on=2417(30<br>
.2%) oi=1566(19.6%) end=200906-17:50:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=79 tps=101 sl=4078(51%) on=2374(29.7<br>
%) oi=1547(19.3%) end=200906-17:50:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=86 tps=93 sl=3993(49.9%) on=2376(29.<br>
7%) oi=1630(20.4%) end=200906-17:50:31<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=84 tps=95 sl=4049(50.6%) on=2321(29%<br>
) oi=1629(20.4%) end=200906-17:50:31<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=86 tps=93 sl=3963(49.5%) on=2420(30.<br>
3%) oi=1616(20.2%) end=200906-17:50:31<br>
---end - Wed Sep 20 17:50:31 2006<br>
---begin sess=10 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:50:31 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=112 tps=71 sl=4005(50.1%) on=2391(29<br>
.9%) oi=1603(20%) end=200906-17:52:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=126 tps=63 sl=3994(49.9%) on=2433(30<br>
.4%) oi=1572(19.7%) end=200906-17:53:05<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=125 tps=64 sl=3979(49.7%) on=2470(30<br>
.9%) oi=1550(19.4%) end=200906-17:53:09<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=131 tps=61 sl=4030(50.4%) on=2361(29<br>
.5%) oi=1608(20.1%) end=200906-17:53:13<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=134 tps=60 sl=3992(49.9%) on=2390(29<br>
.9%) oi=1617(20.2%) end=200906-17:53:14<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=135 tps=59 sl=3998(50%) on=2352(29.4<br>
%) oi=1649(20.6%) end=200906-17:53:15<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=138 tps=58 sl=3962(49.5%) on=2421(30<br>
.3%) oi=1616(20.2%) end=200906-17:53:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=138 tps=58 sl=3999(50%) on=2412(30.2<br>
%) oi=1588(19.9%) end=200906-17:53:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=136 tps=59 sl=3988(49.9%) on=2484(31<br>
.1%) oi=1527(19.1%) end=200906-17:53:18<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=143 tps=56 sl=3992(49.9%) on=2365(29<br>
.6%) oi=1642(20.5%) end=200906-17:53:18<br>
---end - Wed Sep 20 17:53:18 2006<br>
---begin sess=15 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:53:18 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=168 tps=48 sl=4029(50.4%) on=2377(29<br>
.7%) oi=1593(19.9%) end=200906-17:56:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=170 tps=47 sl=4023(50.3%) on=2406(30<br>
.1%) oi=1570(19.6%) end=200906-17:56:52<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=172 tps=47 sl=3932(49.2%) on=2484(31<br>
.1%) oi=1583(19.8%) end=200906-17:57:01<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=191 tps=42 sl=4014(50.2%) on=2461(30<br>
.8%) oi=1524(19.1%) end=200906-17:57:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=198 tps=40 sl=3993(49.9%) on=2396(30<br>
%) oi=1610(20.1%) end=200906-17:57:19<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=192 tps=42 sl=4000(50%) on=2392(29.9<br>
%) oi=1607(20.1%) end=200906-17:57:19<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=202 tps=40 sl=3996(50%) on=2390(29.9<br>
%) oi=1613(20.2%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=195 tps=41 sl=4023(50.3%) on=2365(29<br>
.6%) oi=1611(20.1%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=200 tps=40 sl=3962(49.5%) on=2411(30<br>
.1%) oi=1626(20.3%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=203 tps=39 sl=4039(50.5%) on=2385(29<br>
.8%) oi=1575(19.7%) end=200906-17:57:21<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=198 tps=40 sl=3998(50%) on=2406(30.1<br>
%) oi=1595(19.9%) end=200906-17:57:22<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=204 tps=39 sl=4025(50.3%) on=2364(29<br>
.6%) oi=1610(20.1%) end=200906-17:57:22<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=208 tps=38 sl=3944(49.3%) on=2475(30<br>
.9%) oi=1580(19.8%) end=200906-17:57:23<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=201 tps=40 sl=3944(49.3%) on=2448(30<br>
.6%) oi=1607(20.1%) end=200906-17:57:23<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=217 tps=37 sl=3960(49.5%) on=2451(30<br>
.6%) oi=1588(19.9%) end=200906-17:57:24<br>
---end - Wed Sep 20 17:57:24 2006<br>
---begin sess=20 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 17:57:24 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=208 tps=38 sl=4033(50.4%) on=2308(28<br>
.9%) oi=1658(20.7%) end=200906-18:01:49<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=254 tps=31 sl=4093(51.2%) on=2382(29<br>
.8%) oi=1524(19.1%) end=200906-18:02:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=257 tps=31 sl=3988(49.9%) on=2416(30<br>
.2%) oi=1595(19.9%) end=200906-18:02:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=252 tps=32 sl=4088(51.1%) on=2375(29<br>
.7%) oi=1536(19.2%) end=200906-18:02:42<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=260 tps=31 sl=3970(49.6%) on=2422(30<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=272 tps=29 sl=4005(50.1%) on=2402(30<br>
%) oi=1592(19.9%) end=200906-18:02:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=280 tps=29 sl=4002(50%) on=2420(30.3<br>
%) oi=1577(19.7%) end=200906-18:02:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=276 tps=29 sl=3981(49.8%) on=2428(30<br>
.4%) oi=1590(19.9%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=289 tps=28 sl=3974(49.7%) on=2399(30<br>
%) oi=1626(20.3%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=276 tps=29 sl=4027(50.3%) on=2379(29<br>
.7%) oi=1593(19.9%) end=200906-18:02:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=272 tps=29 sl=4031(50.4%) on=2399(30<br>
%) oi=1569(19.6%) end=200906-18:02:56<br>
---end - Wed Sep 20 18:02:56 2006<br>
---begin sess=25 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 18:02:56 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=235 tps=34 sl=3996(50%) on=2414(30.2<br>
%) oi=1589(19.9%) end=200906-18:07:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=242 tps=33 sl=3997(50%) on=2408(30.1<br>
%) oi=1594(19.9%) end=200906-18:07:57<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=308 tps=26 sl=4058(50.7%) on=2387(29<br>
.8%) oi=1554(19.4%) end=200906-18:09:16<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=305 tps=26 sl=3959(49.5%) on=2433(30<br>
.4%) oi=1607(20.1%) end=200906-18:09:17<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=307 tps=26 sl=4051(50.6%) on=2387(29<br>
.8%) oi=1561(19.5%) end=200906-18:09:26<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=327 tps=24 sl=3972(49.7%) on=2444(30<br>
.6%) oi=1583(19.8%) end=200906-18:09:26<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=330 tps=24 sl=4022(50.3%) on=2387(29<br>
.8%) oi=1590(19.9%) end=200906-18:09:27<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=312 tps=26 sl=3973(49.7%) on=2413(30<br>
.2%) oi=1613(20.2%) end=200906-18:09:29<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=320 tps=25 sl=4050(50.6%) on=2378(29<br>
.7%) oi=1571(19.6%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=314 tps=25 sl=4005(50.1%) on=2366(29<br>
.6%) oi=1628(20.4%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=314 tps=25 sl=4005(50.1%) on=2366(29<br>
.6%) oi=1628(20.4%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=332 tps=24 sl=3965(49.6%) on=2409(30<br>
.1%) oi=1625(20.3%) end=200906-18:09:30<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=317 tps=25 sl=3997(50%) on=2424(30.3<br>
%) oi=1578(19.7%) end=200906-18:09:32<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=316 tps=25 sl=3970(49.6%) on=2384(29<br>
.8%) oi=1645(20.6%) end=200906-18:09:33<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=350 tps=23 sl=3966(49.6%) on=2449(30<br>
.6%) oi=1584(19.8%) end=200906-18:09:41<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=350 tps=23 sl=4030(50.4%) on=2328(29<br>
.1%) oi=1641(20.5%) end=200906-18:09:42<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=353 tps=23 sl=4027(50.3%) on=2414(30<br>
.2%) oi=1558(19.5%) end=200906-18:09:43<br>
---end - Wed Sep 20 18:09:43 2006<br>
---begin sess=30 txn=10000 ORACLE_SID=oracle9i Wed Sep 20 18:09:43 2006<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=286 tps=28 sl=3942(49.3%) on=2392(29<br>
.9%) oi=1665(20.8%) end=200906-18:15:35<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=288 tps=28 sl=4001(50%) on=2396(30%)<br>
oi=1602(20%) end=200906-18:15:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=286 tps=28 sl=3912(48.9%) on=2444(30<br>
.6%) oi=1643(20.5%) end=200906-18:15:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=373 tps=21 sl=4007(50.1%) on=2408(30<br>
.1%) oi=1584(19.8%) end=200906-18:17:24<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=372 tps=22 sl=4012(50.2%) on=2375(29<br>
.7%) oi=1612(20.2%) end=200906-18:17:25<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=371 tps=22 sl=3987(49.8%) on=2386(29<br>
....</span>
</p>
<p><span style="font-size: x-small;">oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=384 tps=21 sl=4020(50.3%) on=2389(29<br>
.9%) oi=1590(19.9%) end=200906-18:17:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=395 tps=20 sl=4002(50%) on=2418(30.2<br>
%) oi=1579(19.7%) end=200906-18:17:44<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=394 tps=20 sl=4037(50.5%) on=2406(30<br>
.1%) oi=1556(19.5%) end=200906-18:17:45<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=390 tps=21 sl=3959(49.5%) on=2389(29<br>
.9%) oi=1651(20.6%) end=200906-18:17:45<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=395 tps=20 sl=3978(49.7%) on=2409(30<br>
.1%) oi=1612(20.2%) end=200906-18:17:47<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=409 tps=20 sl=3988(49.9%) on=2393(29<br>
.9%) oi=1618(20.2%) end=200906-18:17:49<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=391 tps=20 sl=4005(50.1%) on=2407(30<br>
.1%) oi=1587(19.8%) end=200906-18:17:51<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=387 tps=21 sl=4024(50.3%) on=2433(30<br>
.4%) oi=1542(19.3%) end=200906-18:17:53<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=394 tps=20 sl=3962(49.5%) on=2407(30<br>
.1%) oi=1630(20.4%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=404 tps=20 sl=3991(49.9%) on=2371(29<br>
.6%) oi=1637(20.5%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=402 tps=20 sl=4066(50.8%) on=2386(29<br>
.8%) oi=1547(19.3%) end=200906-18:17:54<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=409 tps=20 sl=3943(49.3%) on=2545(31<br>
.8%) oi=1511(18.9%) end=200906-18:17:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=399 tps=20 sl=4013(50.2%) on=2422(30<br>
.3%) oi=1564(19.6%) end=200906-18:17:55<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=415 tps=19 sl=3964(49.6%) on=2425(30<br>
.3%) oi=1610(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=415 tps=19 sl=3982(49.8%) on=2408(30<br>
.1%) oi=1609(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=407 tps=20 sl=4017(50.2%) on=2431(30<br>
.4%) oi=1551(19.4%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=427 tps=19 sl=4024(50.3%) on=2368(29<br>
.6%) oi=1607(20.1%) end=200906-18:17:56<br>
oracle9i txn(all)=10000 xn(sam)=7999 t(sam)=420 tps=19 sl=4000(50%) on=2397(30%)<br>
oi=1602(20%) end=200906-18:17:57<br>
---end - Wed Sep 20 18:17:57 2006</span>
</p>
<p><span style="font-size: x-small;">其中:<br>
txn(all)----代表Total transaction Count,总的事务数量.<br>
xn(sam)-----采样的事务数量<br>
t(sam)------采样事务运行的时间. </span>
</p>
<p><span style="font-size: x-small;">这个结果太乱,我们可以用orabm提供的脚本orabm_tps.sh格式化一下:<br>
这个脚本一般在linux才可用,本人的机器在windows下安装了一些linux加强工具,所以可以正常运行这个脚本<br>
D:programeroracle tools压力orabmbin>orabm_tps.sh orabm.oracle9i.log<br>
ORACLE_SID=oracle9i sess=1 tps=500<br>
ORACLE_SID=oracle9i sess=3 tps=576<br>
ORACLE_SID=oracle9i sess=1 tps=533<br>
ORACLE_SID=oracle9i sess=2 tps=572<br>
ORACLE_SID=oracle9i sess=6 tps=586<br>
ORACLE_SID=oracle9i sess=10 tps=609<br>
ORACLE_SID=oracle9i sess=15 tps=620<br>
ORACLE_SID=oracle9i sess=20 tps=610<br>
ORACLE_SID=oracle9i sess=25 tps=631<br>
ORACLE_SID=oracle9i sess=30 tps=632</span>
</p>
<p><span style="font-size: x-small;">在执行不要执行其他程序,正常情况下,无论多少个并发,CPU的利用率应该在100%<br>
从结果可以看出,本机的tps在610左右。</span>
</p>
<p><span style="font-size: x-small;">并非并发数越多,tps就越大,有时候随着并发的增多,tps反而减小。<br>
如果发现随着并发的增大,tps并没有明显增加,或者反而减小了,则说明已经到了系统的瓶颈了。这个临界点可以看作是系统的所能承受最大tps了。</span>
</p>