Use Orastress! to test your database

原文链接:

http://www.eygle.com/special/Use.Orastress.2.Test.Oracle.db.htm

Orastress!的作者是Geoff Ingram,也就是我们前面介绍的orabm的作者,他曾经为Oracle工作数年,是High Performance Oracle" (ISBN: 0471224367)一书的作者. 该书现在你可以在本站下载.

关于该工具的官方网页在这里可以找到:

http://www.linxcel.co.uk/orabm/index.html

Orastress!你可以在原网站下载,或选择本地下载.

该工具不是开源的,缺省的只能使用一个session测试,你可以从作者那里申请临时Key,通过以下页面我们可以获得7天的无功能限制使用版:

http://www.linxcel.co.uk/7505/10218_trialkey_orastress!.html

Orastress!需要在windows上运行,你需要安装Oracle客户端.

收到Key以后,注册方式如下:

After receiving the key, install as follows by entering the Name and Key into the dialog box that displays when you run:C:/orabm>orastress! register

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

sqlplus orabm/orabm@<your-TNS-alias> @orastress.plb

日志参考: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相同.

对于四种运行模式说明如下:

READ:Runs the identical read-only workload as Orabm to stress CPU and memory.

OLTP:Uses all five TPC-C transactions: New-Order, Order-Status, Payment, Stock-Level and Delivery, in order to generate a mixed-transaction (SQL INSERT/UPDATE/DELETE) OLTP workload which stresses CPU, memory, and I/O.

INS:Runs an I/O intensive SQL INSERT workload by copying rows into the ITEM_INS table from the TPC-C ITEM table.

DIO:Runs an I/O intensive direct-path INSERT workload by copying rows into the ITEM_DIO table from the TPC-C ITEM table.

以下是一些运行举例:

Example 1:

orastress! –s 1 –t 50000 –c inst1.world –m oltp

Run one iteration - comprising 50000 transactions in 1 session - against inst1.world.

进行一组测试,通过一个session,包含50000个事务,对inst1.world数据库进行测试.

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个事务,这两个数据库可以是:

·2 instances of a RAC cluster

·different non RAC instances on the same server

·different non RAC instances on different servers (e.g. one on Linux, one on Solaris)

Example 3:

orastress! –s 1,2,4 –t 50000 –c inst1,inst2,inst3,inst4 –m read

Run 3 iterations each of 50000 transactions on each of four instances: inst1, inst2, inst3 and inst4, where the number of concurrent sessions in each iteration is:

运行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

--输出结果:

Output is very similar to Orabm, showing the transactions per second for each session in each iteration and the transaction split between the five TPC-C transactions for OLTP mode:

输出结果和orabm非常类似,具体参考:

http://www.eygle.com/special/Use.orabm.2.Test.System.CPU.htm

---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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

dg broker校验失败的一个奇怪问题(二) (r8笔记第51天)

对昨天提出的问题做了一个简单的分析和排查,也算是有了一个交代,上一篇文章在 dg broker校验失败的一个奇怪问题 我查看了最近的日志,发现在半个月以前有一...

36450
来自专栏杨建荣的学习笔记

大量redo生成的问题原因及改进(r6笔记第50天)

接着上次分享的关于数据库无法登录的原因http://blog.itpub.net/23718752/viewspace-1791089/ 其实最终还是因为在短期...

30660
来自专栏Java技术分享

SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis)

使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已经很久了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当...

1.4K120
来自专栏Ryan Miao

gradle中使用嵌入式(embedded) tomcat, debug 启动

在gradle项目中使用embedded tomcat。 最开始部署项目需要手动将web项目打成war包,然后手动上传到tomcat的webapp下,然后启动t...

53390
来自专栏大数据互联网思维

SpringCloud学习2-Springboot监控模块+

学习一项新技术最大的困难是什么? 是资料。让人高兴的是找到了一本系统学习Spring Cloud的教程,《Spring Cloud微服务实战》, 接下来的学习目...

13300
来自专栏杨建荣的学习笔记

使用shell脚本快速得到主备关系(r9笔记第93天)

对于备库的使用,尤其是一主多备的环境,一直以来有一点感觉不大给力,那就是主备库的关系,总是感觉会少一点什么。 尤其是在做月度404审计的时候,总是要反复确认备库...

37760
来自专栏菩提树下的杨过

oracle 11g 查看服务端/客户端编码,及修改db编码

oracle 如果server与client端的编码不一致,asp.net读取db记录显示时,就可能出现乱码 查看oracle服务端编码:select * fr...

247100
来自专栏10km的专栏

linux下用cmake对caffe静态编译时-static-libstdc++参数无效的问题

以下是用于cmake 生成 Makefile文件对Caffe进行静态库连接编译的shell脚本, #!/bin/bash # cmake 静态编译 caffe-...

1.1K60
来自专栏技术博文

ip地址查询

<?php Class IPQuery{ private static $_requestURL = 'http://ip.taobao.com/ser...

343110
来自专栏Java技术分享

SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis)

使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已经很久了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当...

2.3K130

扫码关注云+社区

领取腾讯云代金券