tpcc-mysql 实践

一、TPCC 介绍

    • TPC:
      全称Transaction Processing Performance Council (事务处理性能委员会),是一家非盈利性组织,该组织制定各种商业应用的基准测试规范,任意厂商和个人,都可以按照其规范来开发自己的应用程序。

       

    • TPC-C:
      是由 TPC 推出的一套基准测试程序,主要用于联机事务类应用的测试,最后的字母 C 是序号,因为在他之前有 TPC-A 和 TPC-B。使用的比较多的是 TPC-C,因为 TPCC 是套基准。
      TPC-C 是专门针对联机交易处理系统(OLTP 系统)的规范,一般情况下我们也把这类系统称为业务处理系统
      TPC-C 使用三种性能和价格度量,其中性能由 tpmC(transactions per minute,tpm)衡量,Cpm)衡量,C 指 TPC 中的 C 基准程序。它的定义是每分钟内系统处理的新订单个数。TPC-C 还经常以系统性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是美元)/tpmC 数值得出

    • TPCC-MYSQL:
      由 Percona 基于 TPCC 规范开发的一套 mysql 基准测试程序。

    • 测试指标:
      TPC-C 测试的结果主要有两个指标,即流量指标(Throughput,简称 tpmC)。
      流量指标(Throughput,简称 tpmC):按照 TPC 组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这 4 种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足 TPC-C 测试规范的要求,且各种交易数量所占的比例也应该满足 TPC-C 测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。

二、tpcc-mysql 安装

1.安装 bzr

# yum install bzr -y 

2.下载 tpcc-mysql

# cd /usr/local/
# bzr branch lp:~percona-dev/perconatools/tpcc-mysql

下载完成后,当前目录下会有 tpcc-mysql 目录

3.编译安装 tpcc-mysql

# cd /usr/local/tpcc-mysql/src/
# make 

如果没有报错,tpcc-mysql 就安装完成了。
安装完成后会生成两个可执行文件:
tpcc_load:用于初始化数据。
tpcc_start:用于执行基准测试。

 三、tpcc-mysql 使用

一般分为下面 4 个步骤:
创建数据和表结构
加载数据
执行测试
测试结果解读分析

1.创建表和索引

创建库:

# mysql -uroot -punixfbi -h192.168.199.134 -e "create database tpcc;"

创建表结构:

# mysql -uroot -punixfbi -h192.168.199.134 tpcc < /usr/local/tpcc-mysql/create_table.sql 

创建索引:

# mysql -uroot -punixfbi -h192.168.199.134 tpcc < /usr/local/tpcc-mysql/add_fkey_idx.sql 

表的介绍:

# mysql -uroot -punixfbi -h192.168.199.134 -e "show tables from tpcc;"

+----------------+
| Tables_in_tpcc |
+----------------+
| customer       |    #用户表
| district       |    #分布表
| history        |    #历史记录表
| item           |    #订单详情表
| new_orders     |    #新订单表
| order_line     |
| orders         |    #商品表
| stock          |
| warehouse      |    #仓库相关表
+----------------+

2.初始化数据

先看看 tpcc_load 的用法吧

# ./tpcc_load -h
*************************************
*** ###easy### TPC-C Data Loader  ***
*************************************

 usage: tpcc_load [server] [DB] [user] [pass] [warehouse]
      OR
        tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]

           * [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS

参数含义:
server:数据库 IP
DB:数据库名称
user:用户名
pass:密码
warehouse:仓库数量
执行下面的命令开始初始化数据:(仓库数我选择了 10 个)

# ./tpcc_load 192.168.199.134 tpcc root unixfbi 10

初始化成功最后会输出:

...DATA LOADING COMPLETED SUCCESSFULLY.

3.开始测试:

# ./tpcc_start --help
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
./tpcc_start: invalid option -- '-'
Usage: tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file -t trx_file

参数含义:
-w warehouses :仓库数量
-c connections:并发线程数
-r warmup_time:指定预热时间,以秒为单位,默认是 10 秒,主要目的是为了将数据加载到内存。
-l running_time:指定测试执行的时间,以秒为单位,默认是 20 秒。
-i report_interval:指定生成报告的间隔时间。
-f report_file:将测试中各项操作的记录输出到指定文件内保存。
-t trx_file:输出更详细的操作信息到指定文件内保存。

执行下面的命令:

上一篇:WEB – Architecture


下一篇:Windows 2008 R2 NTP 时钟同步配置