今天我们来讲一下MySQL的压力测试工具,目前我接触到的主要有两种压力测试工具:TPCC,Sysbench,前者只适合MySQL数据库OLTP压力测试,而Sysbench功能就比较广泛,可以测试OS的CPU,Memory,IO,以及多种关系型数据库,如MySQL,PostgreSQL;
这篇博客主要讲解Tpcc 安装,测试。
简介
TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统;
tpcc-mysql是percona基于TPC-C衍生出来的产品,专用于MySQL基准测试。
安装
下载安装epel:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
安装bzr客户端:
yum install -y bzr
下载tpcc-mysql-master.zip软件:
unzip tpcc-mysql-master.zip
cd tpcc-mysql-master/src/
make
如果 make 编译没有报错,就会在 /tmp/tpcc-mysql 下生成 tpcc 二进制命令行工具 tpcc_load 、 tpcc_start;
Tpcc工具结构介绍
create_table.sql:创建所需的数据库表,共9个表
add_fkey_idx.sql:创建索引和外键
drop_cons.sql:删除约束
这9个表的关系:
customer district history item new_orders order_line orders stock warehouse
tpcc-mysql的业务逻辑及其相关的几个表作用如下:
New-Order:新订单,一次完整的订单事务,几乎涉及到全部表
Payment:支付,主要对应 orders、history 表
Order-Status:订单状态,主要对应 orders、order_line 表
Delivery:发货,主要对应 order_line 表
Stock-Level:库存,主要对应 stock 表
其他相关表:
客户:主要对应 customer 表
地区:主要对应 district 表
商品:主要对应 item 表
仓库:主要对应warehouse 表
测试步骤
(1)建库建表
mysqladmin -uroot -p147258 create tpccdb;
mysql -uroot -p147258 tpccdb < /tmp/tpcc-mysql-master/create_table.sql
mysql -uroot -p147258 tpccdb < /tmp/