`

通过开源工具orabm计算TPS值来测试服务器CPU性能

阅读更多

测试平台: RHEL4.8 x8_64 + Oracle Database 10.2.0.4


1) 工具描述


 

orabm是一个开源的系统CPU性能测试工具, 包含了一套SQL脚本和几个命令行程序. Orabm通过在用户指定的并发下运行指定数量的事务来测试数据库的TPS值. TPS是Transactions Per Second的缩写, 也就是事务数/秒, 它是软件测试结果的测量单位. 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程. 客户机在发送请求时开始计时, 收到服务器响应后结束计时, 以此来计算使用的时间和完成的事务个数, 最终利用这些信息来估计得分.


 

2) 下载安装


 

下载地址: http://www.linxcel.co.uk/orabm/orabm.tar

$ cd /orahome/wangnc/os/

$ rz

$ tar xvf orabm.tar

$ cd install

$ ls

orabm_analyze.sql   orabm_cache.sql   orabm_ind.sql   orabm_query_cache.sql   orabm_serverside_stress.sql   orabm_tab_rm.sql   orabm_tab.sql   orabm_user.sql   _vti_cnf


注意: 缺省的orabm测试用用户会建立在tools表空间, 如果想把数据放在其他表空间可以修改orabm_user.sql来调整.


$ vi orabm_user.sql

$ sqlplus / as sysdba @orabm_user.sql

$ sqlplus / as sysdba @orabm_tab.sql

$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$LD_LIBRARY_PATH

$ chmod u+x ../bin/linux/orabmload.10g.linux

$ ../bin/linux/orabmload.10g.linux Warehouses 1

$ sqlplus / as sysdba @orabm_ind.sql

$ sqlplus / as sysdba @orabm_analyze.sql

$ sqlplus / as sysdba @orabm_serverside_stress.sql

$ sqlplus / as sysdba @orabm_cache.sql


 

3) 简单测试


 

orabm后接2个参数(如果测试远程的压力则接三个参数), 第一个参数表示测试多少个并发(对应多个session), 第二个参数表示执行多少个事务(不是所有的并发共执行多少事务,而是每个并发执行的事务数), 一般来说这个值设置为10000, 第三个参数是在测试远程数据库的时候用的, 值为tnsnames.ora配置的远程数据库连接的别名.


 

$ cd ../bin/linux/

$ chmod u+x orabm.10g.linux

$ ./orabm.10g.linux 1 10000

---begin sess=1 txn=10000 ORACLE_SID=ESUITE Tue Jul 14 13:36:18 2009

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=3 tps=2666 sl=3980(49.8%) on=2367(29.6%) oi=1652(20.7%) end=140709-13:36:23

---end - Tue Jul 14 13:36:23 2009


 

输出结果的说明:

txn(all)----代表Total transaction Count, 总的事务数量

xn(sam)-----采样的事务数量

t(sam)------采样事务运行的时间

tps的计算: 每一个阶段所有session的tps相加就是当前测试的总tps了.


 

执行的结果会打印在屏幕上, 同时会生成一个orabm.${ORACLE_SID}.log的文件, 该文件内容是累加的. 如果所有的测试表和相关索引都已经Cache到内存中, 系统上没有其他任务运行, 那么可以看到单个Orabm Session会使用将近100%的CPU资源. 可以使用Top来查看CPU使用情况, 或者检查数据库中不存在"db file sequential read"等待事件.


 

4) 测试用例


 

对本地数据库进行三个阶段测试, 分别以1,2,6个并发执行10000个事务:


$ ./orabm.10g.linux 1,2,6 10000

---begin sess=1 txn=10000 ORACLE_SID=ESUITE Tue Jul 14 13:38:47 2009

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=3 tps=2666 sl=3883(48.5%) on=2498(31.2%) oi=1618(20.2%) end=140709-13:38:52

---end - Tue Jul 14 13:38:52 2009

---begin sess=2 txn=10000 ORACLE_SID=ESUITE Tue Jul 14 13:38:52 2009

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=4 tps=2000 sl=4004(50.1%) on=2370(29.6%) oi=1625(20.3%) end=140709-13:38:56

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=4 tps=2000 sl=3989(49.9%) on=2435(30.4%) oi=1575(19.7%) end=140709-13:38:56

---end - Tue Jul 14 13:38:56 2009

---begin sess=6 txn=10000 ORACLE_SID=ESUITE Tue Jul 14 13:38:56 2009

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=3 tps=2666 sl=4054(50.7%) on=2375(29.7%) oi=1570(19.6%) end=140709-13:39:01

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=4 tps=2000 sl=4003(50%) on=2380(29.8%) oi=1616(20.2%) end=140709-13:39:02

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=4 tps=2000 sl=3903(48.8%) on=2423(30.3%) oi=1673(20.9%) end=140709-13:39:02

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=5 tps=1600 sl=4010(50.1%) on=2426(30.3%) oi=1563(19.5%) end=140709-13:39:03

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=6 tps=1333 sl=4036(50.5%) on=2413(30.2%) oi=1550(19.4%) end=140709-13:39:04

ESUITE.LK txn(all)=10000 xn(sam)=7999 t(sam)=6 tps=1333 sl=4017(50.2%) on=2381(29.8%) oi=1601(20%) end=140709-13:39:04

---end - Tue Jul 14 13:39:04 2009


 

其实从上面的运行结果中已经差不多可以看出TPS的值了, 把并发session的TPS值相加即可. 不过orabm程序包中有一个格式化输出结果的SHELL脚本, 可以看得更加清楚:


 

$ cd ..

$ ./orabm_tps.sh linux/orabm.$ORACLE_SID.log

ORACLE_SID=ESUITE sess=1 tps=2286

ORACLE_SID=ESUITE sess=1 tps=2286

ORACLE_SID=ESUITE sess=1 tps=2000

ORACLE_SID=ESUITE sess=2 tps=5332

ORACLE_SID=ESUITE sess=6 tps=10133


 

5) 删除orabm

 

$ sqlplus / as sysdba

SQL> drop user orabm cascade;


--End--

 

分享到:
评论

相关推荐

    服务器TPMC值计算.docx

    服务器TPMC值计算 TPC基准程序是用来测系统而不是测主机的 目标:系统性能评估结果 主机性能评估结果 TPC已经推出了四套基准程序,被称为TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已经过时,不再使用了。TPC-C是...

    Mysql数据库的QPS和TPS的意义和计算方法

    在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。本文比较了网上的两种计算方式。先来了解一下相关概念。 概念介绍: QPS:Queries Per Second 查询量/秒,是一台服务器每秒能够相应的查询次数,是对...

    tps java测试代码.txt

    tps java测试代码

    性能测试理论基础及文档实例

    如果想要入门性能测试,必须掌握性能测试基础内容,像并发用户数、TPS、响应时间、吞吐率、资源利用率等性能指标,也要学会编写性能测试计划文档、性能测试方案、性能测试用例、性能测试报告等文档,更要掌握如何...

    性能测试报告、性能测试结果分析

    Tps=Vuser / RT 性能测试基本上是围绕上面的公式进行开展; 想要优秀的RT,需要调整服务器配置和应用程序响应能力; 想要优秀的Tps,同样是对参数配置、程序的响应能力,因为Vuser是固定的。

    性能测试面试题精选(含答案)

    答案:系统在一定的压力情况下,查看cpu,内存,磁盘,网络带宽,TPS、响应时间、并发用户数、等各项指标,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求,就是在特定的运行条件...

    jmeter mysql 性能测试脚本

    自己整理的mysql性能测试脚本,需要的同学,可以下载使用

    关于服务器性能优化方法

    TPS是衡量服务器性能最常用的指标之一。 2. QPS(Queries Per Second):每秒查询数,与TPS类似,但更关注数据库查询的数量。 3. RPS(Requests Per Second):每秒请求数,是服务器最直接的衡量标准,它可以度量...

    LoadRunner性能测试工具实战视频教程【全套26集】

    LoadRunner性能测试工具实战视频教程【全套26集】 随机函数 在软件测试工具中如何巧用LoadRunner的随机函数。 LoadRunner有自带的随机函数,如果巧妙的加以采用,能解决一些看似很困难的实际问题。 一个项目的性能...

    提升Hyperledger Fabric性能到20000TPS(中文).pdf

    FastFabric:提升Hyperledger Fabric性能到20000TPS。 摘要 预计区块链技术将对各种行业产生重大影响。然而,阻碍它们的一个问题是它们有限的交易吞吐量,特别是与诸如分布式数据库系统之类的已建立的解决方在本文...

    Oracle性能测试指标

    Oracle性能测试指标用于查询数据库性能及使用情况

    mina权威性能测试例子

    apache mina性能测试实例 四台客户端机器,服务器能跑到1w。mina的jar包自己去下,我上传的其他资源里也有。

    服务器性能指标.docx

    【70%的吞吐量集中区间】通过统计15%和85%的吞吐量边界值,计算出70%的吞吐量集中区间。区间越集中,吞吐量越稳定。 【响应时间】一次事务的处理时间。通常指从一个请求发出,到服务器进行处理后返回,再到接收完毕...

    TI-TPS737电源芯片电阻计算软件

    TI-TPS737电源芯片电阻计算软件

    淘宝性能测试白皮书V0.32

    引言4性能测试指标 4TPS每秒事务数 4性能测试模型 6PV计算模型 6TPS波动模型 8性能测试策略 10性能测试类型 10性能测试压力变化模型 10性能测

    系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

    本文来自于csdn,文章主要从系统吞度量要素,系统吞吐量评估,软件性能测试的基本概念和计算公式等等方面来介绍。一.系统吞度量要素:一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联...

    基于多信号流建模的海军测试程序集TPS的开发

    基于多信号流建模的海军测试程序集TPS的开发

    系统吞吐量(TPS)、用户并发量、性能测试概念和公式.docx

    系统吞吐量(TPS)、用户并发量、性能测试概念和公式

    史上最全的性能测试流程

     1.3、确定各场景或接口的指标值art(响应时间)、tps(每秒处理请求的事务)、成功率、内存使用率、cpu使用率等...  2、性能测试需求分析  2.1、明确测试需求的背景和目的;  2.2、交易或接口选取的合理性; ...

    性能测试——指标分析

    性能衡量指标一般有以下几个: 1. 响应时间 2. 并发用户数 3. 吞吐量 4. TPS 上面几个指标的具体理解...那么在实际的性能测试中,一般我们拿到线上的pv值,那么根据pv值我们怎么算出合适的线程数,以及系统的吞吐量呢?

Global site tag (gtag.js) - Google Analytics