TPC发布的测试标准之一,是专门针对联机事务处理系统(OLTP)的测试标准。1992年发布1.0版本。最新版本5.11,2010年发布。

测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境,并对系统配置规定了具体详细的要求,如数据库的结构、事务的类型和比例、事务相应时间限制等。

TPC-C标准中应用环境的体系结构

TPC-C标准中的数据库结构

TPC-C标准中规定的事务类型和比例

TPC-C标准中规定的五种事务

1.新订单(New-Order):对于任意一个客户端,从固定的仓库随机选取  5-15  件商品,创建新订单,其中 1%的订单要由假想的用户操作失败而回滚。

主要特点:中量级、读写频繁、要求响应快。

2.支付操作(Payment):对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,采用随机的金额支付一笔订单,并作相应历史纪录。

主要特点:轻量级,读写频繁,要求响应快。

3.订单状态查询(Order-Status):对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,读取其最后一条订单,显示订单内每件商品的状态。

主要特点:中量级,只读频率低,要求响应快。

4.发货(Delivery):对于任意一个客户端,随机选取一个发货包,更新被处理订单的用户余额,并把该订单从新订单中删除。

主要特点:1-10 个批量,读写频率低,较宽松的响应时间

5.库存状态查询(Stock-Level):对于任意一个客户端,从固定的仓库和辖区随机选取最后 20 条订单,查看订单中所有的货物的库存,计算并显示所有库存低于随机生成域值的商品数量。

主要特点:重量级,只读频率低,较宽松的响应时间。

TPC-C标准中规定的各类事务响应时间

TPC-C标准中的事务处理流程图

TPCC测试步骤:

准备工作:

1.安装postgresQL9.2.4,安装目录为/usr/local/pgsql,几台测试机都已装好。

2. 创建数据目录,用于存放数据库数据。

mkdir    /usr/local/pgsql/data

chown   postgres  /usr/local/pgsql/data  //将数据目录的所有权赋予postgres用户,这个用户是专门用来登录数据库的用户,安装linux时已经创建,密码也是postgres。

3. 切换用户到postgres: su postgres

4. 初始化数据库,到/usr/local/pgsql/bin  目录下,运行初始化脚本:

./initdb  -D  /usr/local/pgsql/data    //-D就是指定数据目录的意思,这个目录可以按照需要任意改变。

5. 启动数据库服务器,到/usr/local/pgsql/bin  目录下,

./postgres  -D /usr/local/pgsql/data

6. 在psql下创建数据库用户benchmarksql:

切换到postgres用户,到/usr/local/pgsql/bin下运行:

./psql      //默认以管理员用户登录默认数据库postgres(这里是数据库名,和前面的操作系统用户不同)

create user benchmarksql  with superuser password ‘123456’;

7. 退出psql:\q  ,再以benchmarksql用户登录:

./psql  -U benchmarksql  -d postgres   //-d 指定数据库名

8. Benchmarksql是java程序,需要安装jdk,因为我们用的是benchmarksql的老版本,要求的jdk版本是5.0,安装后配置环境变量。

JDK安装

1、修改文件可执行权限

#chmod +x jdk-1_5_0_22-linux-i586-rpm.bin

2、文件解压

#./jdk-1_5_0_22-linux-i586-rpm.bin

出现一行字:Do you aggree to the above license terms? [yes or no]
      安装程序在问您是否愿意遵守上面的许可协议。当然要同意,输入"y" 或 "yes" 回车

解压后的文件是jdk-1_5_0_22-linux-i586.rpm包。

3、执行安装

#rpm -ivh jdk-1_5_0_22-linux-i586.rpm

安装软件会将JDK自动安装到 /usr/java/目录下

JDK配置

1、设置环境变量

#vi /etc/profile

在文件最后添加如下内容

#set java environment
        JAVA_HOME=/usr/java/jdk1.5.0_22
        CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
        PATH=$JAVA_HOME/bin:$PATH
        export JAVA_HOME CLASSPATH PATH

保存后退出

2、使用设置快速生效

让设置的环境变量立即生效 ,可以使用如下命令:

    source /etc/profile

3、验证

#java -version

如果看到JVM版本及相关信息,即安装成功!屏幕输出:
           java version "1.5.0_22"
           Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
           Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)

(JDK卸载

1、查看rpm安装的JDK版本

#rpm -qa|grep jdk

可能看到如下类似的信息:

jdk-1.5.0_22-fcs.x86_64

2、卸载JDK

#rpm -e --nodeps jdk-1.5.0_22-fcs.x86_64)

Benchmarksql操作:

1. 修改参数文件

Benchmarksql下载到zip格式的程序包,解压就可以用,安装目录在/root/software/Benchmarksql2.3.2(2.3.3),

到此目录下进入run目录,打开postgres.properties,修改参数:driver=org.postgresql.Driver

conn=jdbc:postgresql://222.29.193.207:5432/postgres

//指定要连接的数据库服务器的IP,如果本机就是localhost,5432是端口号不用动,postgres是要连接的数据库名。

user=benchmarksql   //数据库用户名

password=123456    //数据库用户benchmarksql的密码

2. 创建TPC-C标准规定的9个表:

./runSQL.sh  postgres.properties  sqlTableCreates

这时候可以在psql输入\dt命令查看有没有生成9个表 。

3. 加载数据:

./loadData.sh postgres.properties  numWarehouses  10 //warehouses个数决定测试的数据量,根据情况指定

4. 创建索引:

./runSQL.sh postgres.properties  sqlIndexCreates

5. 运行测试:

./runBenchmark.sh postgres.properties

这时会弹出java的图形化界面,修改

warehouses的值,要和之前导入的个数要相同;

terminals的值,是warehouses的10倍;

测试时间,TPC-C标准规定的测试时间是2个小时,我们在试探性阶段可以设置的短一些;

最后点击创建terminals、开始测试即可。

运行结束,在run目录下的reports目录中生成测试报告。

6. 下一轮测试:

下一次测试需要重新加载数据,首先运行删除索引脚本,然后清空所有数据:

./runSQL.sh postgres.properties  sqlIndexDrops

./runSQL.sh postgres.properties  sqlTableTruncates

然后执行3-5步骤即可。

注:以上命令全部基于Linux,Windows下只需将.sh脚本换为.bat即可。

附上几张设置及测试结果图:(两颗物理CPU Intel(R) Xeon(R) CPU E5-2620  2.10GHz,6核,24颗逻辑CPU,)PG shared_buffer 10GB:

TPC-C测试的更多相关文章

  1. 如何规划和选择数据库服务器:CPU、内存、磁盘、网络(转)

    转自:http://blog.chinaunix.net/uid-5715-id-2734517.html 学习如何根据业务模型来计算tpcc值,挺有帮助的. 当一个新的业务系统开发完成后,需要在一个 ...

  2. EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子

    本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF的默认的继承映射关系:一张表存放基类和子类的所有列,自动生成的discr ...

  3. LTE 测试文档(翻译)

    Testing Documentation 翻译 (如有不当的地方,欢迎指正!)     1 概述   为了测试和验证 ns-3 LTE 模块,文档提供了几个 test suites (集成在 ns- ...

  4. EF-CodeFirst 继承关系TPH、TPT、TPC

    继承关系 面向对象的三大特征之一:继承 ,在开发中起到了重要的作用.我们的实体本身也是类,继承自然是没有问题.下面开始分析 EF里的继承映射关系TPH.TPT.TPC 现在我们有这样一个需求,用户里要 ...

  5. entity framework里的继承映射关系TPH、TPT和TPC

    本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF的默认的继承映射关系:一张表存放基类和子类的所有列,自动生成的discr ...

  6. IGS_学习笔记07_IREP通过页面测试客户化Web Service调用(案例)

    20150819 Created By BaoXinjian

  7. EF——继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子 05 (转)

    EF里的继承映射关系TPH.TPT和TPC的讲解以及一些具体的例子   本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF ...

  8. Oracle的TPCC测试,原来也是个作弊的东西...

    http://www.oaktable.net/content/sorted-hash-clusters-rip 根据Jonathan Lewis老先生的测试实例,发觉cluster 的sort功能, ...

  9. oracle 压力测试工具benchmarksql

    TPC-C测试 TPC-C 于 1992 年 7 月 23 日认可为新的基准测试.TPC(Transaction Processing Performance Council,事务处理性能委员会)-C ...

  10. 使用BenchmarkSQL测试PostgreSQL

    BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB.PostgreSQL.MySQL.Oracle以及SQL Server等数据库直接进行测 ...

随机推荐

  1. Request的getParameter和getAttribute方法的差别

    HttpServletRequest.getParameter("modelName");能取到想要的modelObject吗?经过測试之后.发现是不能的. 后来想想.其它道理挺简 ...

  2. OpenGL ES 3.0 Graphics Pipeline

    一:OpenGL ES 3.0 Graphics Pipeline  渲染管道如下图 1.Vertex Buffer/Arrays Objects的数据由应用程序传进来 2.由上图可以看到Textur ...

  3. UI组件之TextView及其子类(一)TextView和EditText

    先来整理一下TexView,EditView的使用方法. Textview是最主要的组件.直接继承了View,也是众多组件的父类.所以了解她的属性会对学习其它组件非常有帮助. TextView的属性: ...

  4. c# iTextSharp导出PDF

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Th ...

  5. NPOI简单的给某个单元格字体设置颜色

    参考文档有: https://www.cnblogs.com/gossip/p/4307486.html https://bbs.csdn.net/topics/391042064?page=1 效果 ...

  6. dev c++与VC assist的杂记

    最近要处理一些数据,于是把旧本拿出来用用.但是发现旧本运行速度很慢. 分析之后发现是瑞星的老版本程序里面加了游戏的云存储节点的注册表键.果断把该键删了之后,CPU使用率从66%以上降到24%左右. 然 ...

  7. ADO.NET之断开数据连接的数据库操作

    在ADO.NET对数据库操作时有两种方式一种时与数据库实时连接,第二种时断开连接的操作. 断开连接的操作使用SqlDataAdapter来实现,我们要把数据库中的表数据加载到winform中的data ...

  8. 3ds Max怎么制作亮木材质的球体

    3DSMax怎么制作亮木材质的球体?3DSMax中想要设计一款亮木材质的球体,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友可以参考下! 1.运行软件,选择材质编辑器图标: 3.双击拖拽出的材质 ...

  9. 原生ajax实现文件上传

    视图层 JS 函数:    <input type="file" onchange="sendFile()" id="up" /> ...

  10. [NOIP2011提高组]Mayan游戏

    题目:洛谷P1312.Vijos P1738.codevs1136. 题目大意:在一个7行5列的棋盘(左下角坐标0,0)上,有一些不同颜色的棋子. 规定某一时刻,连续三个横排或竖列的棋子颜色相同,则它 ...