tpcc-mysql 压力测试

若是想知道数据库或集群在业务环境中的性能,就需要压测。

TPC-C

TPC-C 是TPC组织发布的一个测试规范,用来模拟测试复杂的在线事务处理系统(OLTP)。

它的测试结果包括每分钟事务数(tpmC),以及每事务的成本(Price/tpmC)。TPC-C 测试相比sysbench更能模拟真实压力。

tpcc-mysql

tpcc-mysql是percona开发出来的针对mysql的基于tpcc规范的测试工具,用来压力测试。

tpcc-mysql的测试库将覆盖很多的业务场景,测试结果也将和真实业务性能接近,tpcc的检测标准针对于单节点MySQL,对SQL的执行时间有严格的规定。

步骤:

1. 创建数据库和表结构

2. 加载数据到数据库

3. 执行测试

 

tpcc的模式

tpcc-mysql 压力测试_第1张图片         tpcc-mysql 压力测试_第2张图片

 

安装tpcc-mysql(ubuntu)

安装git(原本有的话不用安装)
sudo apt-get install git
安装make
sudo apt-get install make
数据库默认都有,没有的话执行下面这条语句
sudo apt-get install mysql-server
安装mysql开发环境,否则在执行make时会出现'/bin/sh: 1: mysql_config: not found'错误
sudo apt-get install libmysqlclient-dev
克隆源码
git clone https://github.com/Percona-Lab/tpcc-mysql.git
找到自己克隆tpcc-mysql的地方,进入文件夹
cd tpcc-mysql

查看目录内容:

tpcc-mysql 压力测试_第3张图片

进入src文件夹并make
cd src
make
报错:
"Fatal error: can't create load.o: Permission denied"
也就是权限不足
sudo make
编译完毕
返回上一层tpcc-mysql目录
cd ..
ll

tpcc-mysql 压力测试_第4张图片

出现以上的两个包说明编译成功

安装tpcc-mysql(CentOS)

大部分步骤和ubuntu一直,因为源代码都是由GitHub提供,只需要编译,和ubuntu稍有不同的就是安装下面两个东西:

yum install -y gcc
yum install -y mysql-devel

安装完毕编译一下就OK

 

创建测试数据

进入数据库建立名为tpcc的库:

tpcc-mysql 压力测试_第5张图片

tpcc-mysql 压力测试_第6张图片

成功创建tpcc数据库,然后把测试数据导进来:

参数详情: -D:数据库名称    -p 密码    create_table.sql  tpcc-mysql文件夹下的创建表的SQL文件

tpcc-mysql 压力测试_第7张图片

可以看到表都被创建好了

创建索引完毕,结果如下

tpcc-mysql 压力测试_第8张图片

随意拿出某个表查看索引可以看到索引都被创建好了

那么我们现在把订单仓库的那些记录导入数据库中

我们执行下面这条命令:

./tpcc_load -h 127.0.0.1(这里填自己mysql的访问地址) -d tpcc(目标数据库) -u test(用户名) -p 123456(自己的密码) -w 1(想要导入几个仓库的信息)

tpcc-mysql 压力测试_第9张图片

数据量比较大,要等较长的时间,可以打把游戏等他load完

tpcc-mysql 压力测试_第10张图片

终于load完了

开始测试

-c :并行的线程数

-r :数据库的预热时间(这里设置了 4分钟)

-l :测试时间(这里设置了20分钟)

tpcc_log 结果存放日志

 

查看结果

tpcc-mysql 压力测试_第11张图片

sc: 表示执行成功且请求延时在最大阀值之内(5ms)的事务数

lt: 表示执行成功,但请求延时在最大阀值之外(5ms)的事务数

rt: 表示通过重试后执行成功的事务数

fl: 表示执行失败的事务数

avg_rt: 表示事务的平均处理延迟

OK 代表通过

NG  代表不通过

TpmC 每分钟处理事务个数,上图每秒钟处理4个事务(处理能力不高)

还有其他的结果根据自己情况进行分析

 

tpcc-mysql压力测试demo结束

转载请注明出处:

https://blog.csdn.net/qq_36652619

 

你可能感兴趣的:(数据库,MySQL,之,InnoDB,存储引擎浅析)