一、    准备

操作系统 :Linux, 内核版本2.6

需要软件:tpccuva-1.2.3, postgresql-8.1.15, gnuplot-4.2.5。

tccuva是实现标准TPC-C。

Postgresql是最稳定的开源sql数据库。

gunplot是一个数学软件,可以根据数据画出相应的函数图形。

二、    安装

1.   创建用户

[root@RedHat /]# useradd -m tpcctest

[root@RedHat /]# passwd tpcctest(密码自行创建)

以tpcctest身份登录到系统

[root@RedHat /]# su tpcctest

[tpcctest@RedHat /]$

创建相关目录

tpcctest@linux:>mkdir $HOME/tpcc-uva

tpcctest@linux:>mkdir $HOME/tpcc-uva/pgsql

tpcctest@linux:>mkdir $HOME/tpcc-uva/bin

2.   安装PostgreSQL

1)执行下列命令安装PostgreSQL数据库

tpcctest@linux:> ./configure --prefix=$HOME/tpcc-uva/pgsql

tpcctest@linux:>gmake

tpcctest@linux:>gmake install

2)修改PATH和LD_LIBRARY_PATH环境变量。

3)编辑~/.bash_profile文件,添加以下内容

PATH=/usr/local/pgsql/bin:$PATH

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib

export PATH LD_LIBRARY_PATH

4)执行下面的命令,使修改的环境变量生效。

tpcctest@linux :> source ~/.bash_profile

5)输入以下命令,检验环境变量的修改是否生效

tpcctest@linux:> which initdb

如果修改正确,则会输出以下信息

$HOME/tpcc-uva/bin/initdb

6) 启动PostgreSQL

tpcctest@linux:>initdb -D $HOME/tpcc-uva/pgsql/data

tpcctest@linux:> postmaster -D $HOME/tpcc-uva/pgsql/data >log.out 2>log.err&

每次重启系统后都要执行上面的命令来启动PostgreSQL。

7)修改PostgreSQL的参数

修改$HOME/tpcc-uva/pgsql/data/postgresql.conf

将#checkpoint_segments = 3 # in logfile segments (16MB each), min 1

替换为checkpoint_segments = 10 # in logfile segments (16MB each), min 1

将#checkpoint_timeout = 300 # in seconds, range 30-3600

替换为checkpoint_timeout = 3600 # in seconds, range 30-3600

8)强制PostgreSQL重新读取配置文件

tpcctest@linux:>killall -HUP postmaster

3.   安装gnuplot

解压gnuplot后,进入gnuplot的源代码的目录,执行下列命令安装

tpcctest@linux:> ./configure --prefix=$HOME/tpcc-uva/bin --without-x

tpcctest@linux:> make

tpcctest@linux:> make install

4.   安装tpcc-uva.

将tpcc-uva的安装包放在$HOME/tpcc-uva目录下

解压,进入解压后的目录,执行下列命令安装

tpcctest@linux:> make

tpcctest@linux:> make install

三、    使用tpcc-uva测试

个选项让用户选择。

1.   选项1Create a New Test Database(创建新的测试数据库)

这个选项允许用户创建一个新的数据库供tpcc-uva测试用,新创建的数据库惠子tpc-uva测试的工程中根据需要来填充。如果这个选项没有出现,说明数据库已经被创建了,新数据库被放在$HOME/tpcc-uva/pgsql/data目录下。

选了这个选项后,程序会问数据库需要包含几个数据仓库。数据仓库的数目在1~100之间。数据仓库越多,测试压力越大。

,处理能力强的机器数目可以相应增加。每个数据仓库占用137M的空间。

2.   选项2 Restore Existing Database (恢复存在的数据库)

这个选项撤销在测试过程中测试软件对数据库的修改,只有创建数据库之后这个选项才会出现。

如果使用恢复的数据库做测试,测试的结果可能会比用新创建的数据库做测试的结果差。另一方面恢复一个数据库的时间会比创建一个新数据库的时间少很多。一般推荐使用恢复的数据库做初步的测试

3.   选项3Run The Test(开始测试)

这个选项开始性能测试。只有当有数据库被创建或者被恢复时这个选项才会出现。

程序会询问用户用于测试的参数。这些参数包括:

Number of warehouses (数据仓库的个数):这个数字应该少于或等于存在数据库中的数据仓库的个数。

分钟。

小时~8小时。

次。

4.   选项4:Check Database Consistency(检查数据库一致性)

在经过确认之后,测试要在检查完数据库的一致性后开始。如果对某个表的检查失败,程序会要求用户确认后继续处理。虽然出错后仍然可以继续处理,但是仍然强力要求在出错时恢复或重构数据库。

5.   选项5Delete Database(删除数据库)

删除存在的数据库

6.   选项6Perform Data Analysis(执行数据分析)

这个选项让程序分析测试的结果数据。所有的信息包括检查点文件和清理的信息都在屏幕上显示。在屏幕上显示的信息还有用于生成性能分析图形的文件都会在当前路径下保存。在显示完后在屏幕上打印一条信息来通知用户测试是否通过了。

7.   选项7 Check Database State(检查数据库状态)

这个选项检查数据库的行数,并把得到的信息告诉用户。这个信息用来指导数据库是否在前一次测试中被使用过了。如果被使用过了,用户可以选择删除这个数据库并建立一个新数据库,或者恢复这个数据库并继续使用它。

8.   选项8 Quit(退出)

这个选项退出测试程序。创建的数据库会保留下次使用。

四、查看测试结果

1. 保存结果

可以查看测试结果。测试结果在屏幕上输出完毕后测试程序会提示是否需要保存结果,输入文件名后结果会保存到文件中(如gresult)。

greult中保存了测试的大体情况,对每种事务类型分别记录统计信息。在gresult文件中可以看到类似”NEW-ORDER TRANSACTIONS:”的标题,这就是对每种事物类型进行总结的开始。

在测试过程注意使用抓取系统信息:

次)

次)

测试结果如果是failed,具有参考意义;

注意:在当前目录下回生成很多文件,其数据具有参考意义,比如g4.dat文件可以用来画图,可以观察到数据的波动与走向。

2. 使用gnuplot画图

画的是吞吐率的图。

得到的记过替换561.gnp中的<4x90thPERCENTILE>。

Gnuplot生成的图片是以.eps结尾的,可以用photoshop打开.

五、附录

linux修改用户主目录方法:

第一:修改/etc/passwd文件

这个找到要修改的用户那几行,修改掉就可以了。

第二:usermod命令

TPCC-UVA测试环境搭建与结果分析的更多相关文章

  1. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

  2. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  3. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  4. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  5. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

  6. 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...

  7. Android测试环境搭建

    Android测试环境搭建 一.操作系统 使用Win7_64位操作系统.(可以用其他的系统,下面都是针对Win7 64位进行操作) 二.安装JDK 运行jdk-6u45-windows-x64.exe ...

  8. USDT(omniCore)测试环境搭建

    一.测试环境搭建. 注:由于window版本的omni出现同步不了的问题,推荐使用linux系统进行usdt测试链的搭建. 1.下载omnicore: wget https://bintray.com ...

  9. igmp组播测试环境搭建

    2.4G无线组播测试环境搭建: (1)组播源: VLC 或者 pixstream (2)无线: 2.4G AP (3)客户端PC: VLC播放器 有线直连 无线2.4G PC(组播源pixstream ...

随机推荐

  1. Android开发编码规范(自用)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!   Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境 ...

  2. 监听tableview的点击事件

    // 监听tablview的点击事件 - (void)addAGesutreRecognizerForYourView { UITapGestureRecognizer *tapGesture = [ ...

  3. css单位rem---移动端至宝

    1.rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem大 家一定会想起em单位em(font  ...

  4. css中常用的标签

    最常用的标签 left 左 top 上 right 右 bottom 下 font 字体 size 大小 width 宽度 height 高度 class 类 label 标签 form 表单 gro ...

  5. C#中的TCP通讯与UDP通讯

    最近做了一个项目,主要是给Unity3D和实时数据库做通讯接口.虽然方案一直在变:从开始的UDP通讯变为TCP通讯,然后再变化为UDP通讯;然后通讯的对象又发生改变,由与数据库的驱动进行通讯(主动推送 ...

  6. Codeforces Round #276 (Div. 1)

    a. 给俩数, 求他俩之间二进制数中1最多的,有多个输出最小的: 贪心,从小到大加能加就加,最后可能碰到一个不能加了但是当前数比l小,那么就加上这个数,然后从大到小,能减就减,见到符合条件 #incl ...

  7. poj1981 Circle and Points 单位圆覆盖问题

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Circle and Points Time Limit: 5000MS   Me ...

  8. 自己写的简单的jQuery分页控件

    因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...

  9. HTML5屏幕适配标签设置

    开发HTML5游戏中,我们常用的一些mata标签: <meta name="viewport" content="width=device-width, initi ...

  10. Python新手学习基础之函数-全局变量和局部变量

    全局变量和局部变量 我们通常把定义在函数外的变量成为全局变量,定义在函数内的变量称为局部变量,顾名思义,全局变量的作用域是整个代码段,局部变量的作用域就只是在它所属的代码段,变量只在它的作用域里有效. ...