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

TPC-C

TPC-C

它的测试结果包括每分钟事务数(tpmC),以及每事务的成本(Price/tpmC)。TPC-C

tpcc-mysql

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

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

步骤:

1. 创建数据库和表结构

2. 加载数据到数据库

3. 执行测试

tpcc的模式




mysql 检测弱密码_ubuntu mysql安装


mysql 检测弱密码_ubuntu 安装mysql_02


安装tpcc-mysql(ubuntu)


安装


查看目录内容:


mysql 检测弱密码_ubuntu mysql安装_03


进入


mysql 检测弱密码_ubuntu mysql安装_04


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

安装tpcc-mysql(CentOS)

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


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


安装完毕编译一下就OK

创建测试数据

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


mysql 检测弱密码_mysql_05


mysql 检测弱密码_ubuntu 安装mysql_06


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


mysql 检测弱密码_mysql_07


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


mysql 检测弱密码_ubuntu mysql安装_08


可以看到表都被创建好了


mysql 检测弱密码_mysql_09


创建索引完毕,结果如下


mysql 检测弱密码_ubuntu mysql安装_10


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

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

我们执行下面这条命令:


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


mysql 检测弱密码_mysql_11


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


mysql 检测弱密码_mysql_12


终于load完了

开始测试


mysql 检测弱密码_ubuntu 安装mysql_13


-c :并行的线程数

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

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

tpcc_log 结果存放日志

查看结果


mysql 检测弱密码_ubuntu 安装mysql_14


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

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

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

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

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

OK 代表通过

NG 代表不通过

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

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

tpcc-mysql压力测试demo结束