`
yanghuidang
  • 浏览: 955727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[Oracle]利用开源工具实现自己的TPC-C

阅读更多

[Oracle] How to Use Open Source Tools to Implement Your Own TPC-C

作者:Fenng
日期:Mar 14 2004 (v0.13)
站点:Http://www.dbanotes.net


本文简介

介绍如何利用开源工具实现Oracle数据库环境中的TPC-C.对DBA、开发人员、BI实施者有一定的参考价值.

引言描述


设想一下这样一种情况:

您正在负责公司的一个OLTP类型的数据库项目,面临数据库服务器选型的问题:如何选择硬件才能满足产品环境的业务要求? 这个事情是“拍脑袋” 能决定的吗?

不可否认,硬件选型是一门艺术,选择合适的硬件,能给公司节省大笔的费用,选择不能满足业务需求的服务器产品,不但花了冤枉钱,还会对将来的业务产生影响。

可能大家首先会想到参考服务器的TPC-C的信息。提到TPC-C,可能很多人对此都感到既熟悉又陌生,因为经常听人说起,但是具体的问下去,能说清楚的又没有多少人,而且,从大家口中得到的还不尽相同。那么什么是TPC/TPC-C这些都代表什么意思呢?

什么是TPC?

TPC(Transaction Processing Performance Council,事务处理性能委员会)是一个非盈利性的组织,其官方站点在http://www.tpc.org。其宗旨是为了制定商务应用基准程序(Benchmark)的标准规范,提供性能和价格度量,并管理测试结果的发布。在业界极其具有权威性。

TPC的基准程序的标准规范(Standard Specification)是对公共开放的,可以在官方站点上得到,但是TPC却不提供基准程序的代码。任何软硬件厂商或其它测试者可以根据标准规范,最优地构建自己待测的系统。为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)

什么是tpmC?

先说一下TPC-C,TPC-C是联机事务处理(on-line transaction processing , OLTP)的基准程序。TPC-C模拟一个批发商的货物管理环境。TPC-C使用三种性能和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是transactions per minute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。

了解了这些内容,您可能会想:我们公司的PC服务器完全是自己攒出来的,如何进行TPC-C的衡量的?也去参考TPC官方站点上的信息?不要忘了,TPC.org 上公布的测试结果都是各大厂商根据自己的系统进行了充分优化之后的出来的结果。打个比方,TPC公布的数值就好比崭新的法拉利跑车经过专业技师们的精心检查保养,然后在专用跑道上跑出来的速度值,而我们的情况可能是法拉利(甚至是夏利)要在乡村土路上行驶,可比性大打折扣。

有的朋友会想:那我们可以根据自己的情况,拿一个秒表在“乡村土路”上测试一下看看呀。这样的意义也是显而易见的,对我们的实际的环境不是更具有参考价值?不错,这也正是本文的目的:让我们利用开源(Open Source)工具来实现自己的针对Oracle数据库的TPC-C。

Hammerora—The Open Source Oracle Load Test Tool

首先介绍一下Hammerora。从创作者对这个工具的标题描述可以看出,Hammerora是一款Oracle数据库负载测试工具。该工具可以在Oracle 8i、9i和10g等版本上使用。
当前可以用在Linux/Unix和Windows上.初步实现了跨平台.Hammerora 完全用TCL/TK写就,以GPL版权形式发布。作者是Steve Shaw。
该项目的主页在:http://sourceforge.net/projects/hammerora/

图1: Hammerora的Logo

Hammerora的设计原理是解析Oracle的Trace文件,并把它们转化为Oratcl程序,然后在Oracle数据库中用多个用户并发的对用户的事务进行“回放”。我们知道,Oracle的Trace文件能够翔实的记录用户对数据库的操作。这样Hammerora能够保证对用户环境的真实模拟。

Hammerora最初是用以学习的目的:期望是模拟数据库的一定数量的用户。这样一个小的基于家庭的学习开发系统就能够比较接近产品环境。这个工具已经成长为一个Oracle数据库做压力测试--从小的数据库到大的基于RAC的集群。

TCL语言已经用来提供高性能的和Oracle数据库的OCI集成,而无需重新编译生成的程序。每个生成的程序具有严格的TCL/Oratcl兼容性,并且可以在Hammerora的命令行Shell下运行。TCL的强大功能和灵活性意味着潜在的功能是无穷尽的。TCL线程包用来实现对Oracle数据库的多个并发连接。

Hammerora包含Oracle存储过程和TCL驱动脚本用来运行TPC-C基准程序。但是,我们先要构建一个同TPC-C规范相符的数据库。这样,我们需要用到Orabm。

Orabm

Orabm是Geoff Ingram (High-Performance Oracle: Proven Methods for
Achieving Optimum Performance and Availabilit
y
一书的作者
)构建的一个程序包,包含了一套SQL脚本和几个命令行程序。Orabm数据装载程序(Orabmload)构建了一组遵从TPC-C标准的数据用以测试。Orabm的程序包和源代码可以从它的主页面http://www.linxcel.co.uk/orabm/ 得到。

Orabm的运行机制

Orabm的运行机制在Geoff Ingram有明确的说明,这里翻译如下:Orabm 通过在每个用户指定的并发数据库会话(session)中运行用户执行数量的数据库事务来进行工作.事务通过ORABM模式下的ORABM_SERVERSIDE_STRESS存储过程运行.
对每个并发会话来说,ORABM_SERVERSIDE_STRESS 运行在orabm命令行下指定的事务数,并返回该会话在采样间隔完成时的TPS值.要确保所有并发会话都是在采样间隔期间处理事务,TPS值仅包括事务的中间的80%,也即:初始的10%和最后的10%将忽略掉.

更详细信息可以参考http://www.linxcel.co.uk/orabm/的内容.

安装步骤

1 安装Oracle OCI 库

对Oracle 9i 来说,如果没有安装该组件的话,可能要重新运行runInstall,在Oracle 9i Client products树中选择"Oracle Call Interfaces" .

对Oracle 10g来说,Oracle 10 OCI 库应该是默认安装的.

2 安装TCL

cd /usr/local/src/tcl8.4.5/unix

rm -f config.cache

./configure --enable-threads --enable-shared

make clean

make

make install

3 安装TK

cd /usr/local/src/tk8.4.5/unix

rm -f config.cache

./configure --with-tcl=../../tcl8.4.5/unix --enable-threads --enable-shared

make clean

make

make install

4 安装TCL Threads

cd /usr/local/src/thread2.5.2/unix

rm -f config.cache

sh ../configure --enable-threads --enable-shared

make clean

make

make install

5 安装Oratcl

对10g来说,要编辑配置文件,在1728 行附近, FOUND_ORACLE=0 那一行的下面添加如下部分内容:

echo "checking for Oracle 10.0 style toplevel (libclient10.a)" 1>&6
echo "configure:1730: checking for Oracle 10.0 style toplevel (libclient10.a)" >&5
for f in $oracle_directory $oratest1 $oratest2 $oratest3 $oracle4 /opt/oracle /u/oracle /usr/oracle /usr/local/oracle ; do
echo "$ac_t""looking for lib/libclient10.a in $f" 1>&6
if test -r "$f/lib/libclient10.a" ; then
ORA="$f/lib"
ORACLE_HOME=$f
echo "$ac_t""setting ORA to $ORA" 1>&6
testver=10
ORA_MAJOR_VERSION=10
ORA_MINOR_VERSION=0
FOUND_ORACLE=1
break
fi
done

export ORACLE_HOME=your_oracle_home_directory

cd /usr/local/src/oratcl-4-1-branch/unix rm -f config.cache

sh ../configure --with-tcl=../../tcl8.4.5/unix --with-oracle-directory=$ORACLE_HOME --with-oracle-version=9 ( or 10 or 8! ) --enable-threads --enable-shared
注:红色部分为针对不同的数据库版本需要做的调整.

vi Makefile – 把所有的 -rpath 改做 -Wl,-rpath,

make clean

make

make install

sqlplus orabm/orabm @delivery_sp.sql
sqlplus orabm/orabm @new_order_sp.sql.
sqlplus orabm/orabm @ostat_sp.sql
sqlplus orabm/orabm @payment_sp.sql
sqlplus orabm/orabm @slev_sp.sql

步骤 操作

命令

1 创建 ORABM用户(用TOOLS做默认表空间, TEMP 表空间为临时表空间)

sqlplus system/pwd @orabm_user

2

创建表

sqlplus system/pwd @orabm_tab

3

装载数据

$orabmload Warehouses 1

4

创建索引

sqlplus system/pwd @orabm_ind

5

分析表和索引

sqlplus system/pwd @orabm_analyze

6

创建压力测试PL/SQL 过程

sqlplus system/pwd @orabm_serverside_stress

7

把表和索引数据缓冲到SGA

sqlplus system/pwd @orabm_cache

把tpc-c.tcl脚本载入Hammerora中(remember to change the file filter from *.trc to *.tcl to see TCL files),在该tpc-c.tcl中查找connect字符串,调整为你的数据库用户连接信息。并调整虚拟用户信息。

测试运行

运行Hammerora,创建需要的用户数, 来模拟TPC-C 基准程序(注意调整好执行Hammerora程序的环境变量,最好直接用Oracle用户来执行). 下图为笔者笔记本电脑上得到的数据[机器性能查了一点儿 :) ] :

图2: Hammerora测试结果示例

参考信息

http://hammerora.sourceforge.net/ Hammerora的主页.当前的软件版本是1.15.
http://www.linxcel.co.uk/orabm/ Geoff Ingram维护的个人站点.该站点上还有一个很有趣的工具orastress.用来进行Oracle数据库压力测试.
http://www.tpc.org TPC官方站点.
http://www.cnoug.org/viewthread.php?tid=63技术高手RudolfLu很早以前就曾对orabm这个工具做过介绍.
http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm Installing Oracle 10g on RHEL AS 3 Step-by-Step


本文作者
Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。个人技术站点: http://www.dbanotes.net/。可以通过电子邮件 dbanotes@gmail.com 联系到他。



原文出处

http://www.dbanotes.net/Oracle/Use_OpenSourceTool_implement_YourOwn_TPC-C.htm


回首页 

Creative Commons License
All Articles (by Fenng) are licensed under a Creative Commons License.
I would welcome any feedback. Please send questions, comments or corrections to dbanotes@gmail.com
分享到:
评论

相关推荐

    Oracle:利用开源工具实现 TPC-C(PDF)

    ### Oracle:利用开源工具实现 TPC-C #### 引言 在面对OLTP类型数据库项目的硬件选型时,为了确保所选硬件既能满足业务需求又能合理控制成本,往往需要借助于标准化的性能评估体系来进行决策支持。TPC-C作为业界...

    TPC-DS tools压测工具源码下载TPC-DS_Tools_v3.2.0.zip

    TPC-DS Tools是一款用于执行这些基准测试的工具,它提供了生成测试数据、配置测试环境以及分析性能结果的能力。在本案例中,我们关注的是TPC-DS Tools的源码版本3.2.0,可以从"TPC-DS_Tools_v3.2.0.zip"这个压缩包中...

    TPC-H.zip_QUERY matlab TPC_TPC Benchmark H_TPC-H_TPC-H中文版_tpc-h

    与TPC-H相关的“matlab”标签可能意味着存在使用MATLAB进行TPC-H测试的实现或工具。MATLAB是一种强大的数值计算和数据分析环境,虽然它不是传统的数据库管理系统,但可以通过接口或者数据导入导出功能来处理和分析...

    tpc-h-tool.zip

    《TPC-H工具详解及其在数据库测试中的应用》 TPC-H工具,作为一个业界广泛使用的基准测试套件,主要用于衡量数据库系统在处理复杂的商务智能(BI)查询时的性能。这个工具包,"tpc-h-tool.zip",包含了TPC-H的最新...

    开源数据库测试工具(包含TPC-C测试脚本)

    BenchmarkSQL是这个开源测试工具的名字,它可以针对MySQL、Oracle和SQL Server等多种数据库系统进行配置和运行。MySQL是一个广泛使用的开源关系型数据库管理系统,以其高可靠性、易用性和高性能而闻名。Oracle则是一...

    基于TPC-C的服务器性能计算方法.doc

    "基于TPC-C的服务器性能计算方法" 本文档论述了基于TPC-C的服务器性能计算方法,以衡量联机事务处理(OLTP)系统性能与可伸缩性。TPC-C是一个行业标准基准测试工程,旨在衡量数据库服务器的性能。本文档将TPC-C应用...

    TPC-H-Tools 2.18.0_rc2

    "TPC-H-Tools 2.18.0_rc2"是该测试工具的最新版本,它包含了进行TPC-H测试所需的关键组件。 1. **dbgen**:dbgen是TPC-H测试中生成数据的工具。它按照TPC-H规范生成随机的、具有业务意义的数据,这些数据涵盖了8个...

    TPC-DS_Tools_v3.2.0.zip

    C-DS(Transaction Processing Performance Council Decision Support)的工具集,版本为3.2.0。TPC-DS 是一种标准的性能基准测试套件,用于衡量大数据分析系统的性能和效率。 【描述】"TPC-DS_Tools_v3.2.0" 指出...

    TPC-ZK-II集成开发环境

    TPC-ZK-II微机接口实验系统正是在这种背景下推出的,该设备在TPC-ZK-II微机接口实验系统上配置了USB接口模块,直接与主机(PC)的USB接口连接,形成了一套完整的USB总线接口的微机接口实验系统。

    TPC-H-TOOLS

    【标题】"TPC-H-TOOLS" 是一个专门用于生成数据的工具,它在IT行业中主要用于测试和评估大数据处理系统的性能。TPC-H是Transaction Processing Performance Council(事务处理性能委员会)设计的一种标准基准测试,...

    TPC-ZK-II集成开发环境(64位).rar

    《TPC-ZK-II集成开发环境(64位)》是一款专为微机程序设计而打造的高效开发工具,尤其适合中文用户使用。在这款64位版本的集成开发环境中,用户可以进行高效的编程、调试以及项目管理,极大地提升了开发效率和编程...

    HammerDB测试TPC-H

    ### HammerDB 测试 TPC-H 知识点详解 #### 一、TPC-H 概述 TPC-H (Transaction Processing Performance Council - Benchmark H) 是一个...TPC-H 不仅是衡量系统性能的强大工具,也是推动数据库技术进步的重要驱动力。

    TPC-H_Tools_v2.18.0.zip

    TPC-H工具包 针对数据库不同的使用场景TPC组织发布了多项测试标准。 TPC-H是决策支持的基准测试。它由一套面向业务的即席查询和并发数据修改组成。 这些查询和填充数据库的数据具有广泛的行业相关性。 该基准测试...

    TPC-H生成的数据集

    2. **数据生成工具**:使用专门的TPC-H数据生成器,如`dbgen`,根据TPC-H规范生成随机数据。这些工具允许用户自定义数据规模,比如在本例中是1G。 3. **数据格式调整**:生成的数据最初可能并不适合直接插入数据库...

    TPC-H_on_Hive_2009-08-14.tar.gz

    TPC-H_on_Hive_2009-08-14.tar.gz 是一个压缩包文件,其中包含了针对Hive的TPC-H测试工具。TPC-H是一个标准的决策支持系统(OLAP Online Analytical Processing)基准测试,主要用于评估大数据分析平台在处理复杂...

    TPC-H_Tools_2.18.0_rc2_mysql.zip

    此压缩包"TPC-H_Tools_2.18.0_rc2_mysql.zip"包含了运行TPC-H测试所需的所有工具,特别针对MySQL数据库进行了优化。下面将详细介绍TPC-H测试、相关的工具以及如何在Linux环境下进行编译和执行。 **TPC-H测试介绍** ...

    TPC-DS测试包及tpc测试标准说明

    TPC-DS(Transaction Processing Performance Council Decision Support)是由TPC组织发布的一种大数据决策支持系统的基准测试标准,旨在评估数据仓库和商务智能系统在处理复杂分析查询时的性能和可扩展性。...

    TPC-H 2.18.0

    TPC-H工具包 针对数据库不同的使用场景TPC组织发布了多项测试标准。 TPC-H是决策支持的基准测试。它由一套面向业务的即席查询和并发数据修改组成。 这些查询和填充数据库的数据具有广泛的行业相关性。

    Dahua大华DH-TPC-PT8320M-TA25Z30_热成像摄像机(双目小型云台)快速操作手册.pdf

    这些建议旨在帮助用户保护自己的网络安全,防止未经授权的访问和数据泄露。 热成像摄像机(双目云台)快速操作手册旨在帮助用户正确使用Dahua大华DH-TPC-PT8320M-TA25Z30产品,并保护用户的隐私和网络安全。

    Dahua大华DH-TPC-BF2221-T热成像摄像机(双目中枪)快速操作手册 (1).pdf

    "Dahua大华DH-TPC-BF2221-T热成像摄像机(双目中枪)快速操作手册" 本手册是为Dahua大华DH-TPC-BF2221-T热成像摄像机(双目中枪)提供的快速操作手册,旨在指导用户正确使用和维护设备,确保设备的安全运行和高效...

Global site tag (gtag.js) - Google Analytics