若是想知道数据库或集群在业务环境中的性能,就需要压测。
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的模式
安装tpcc-mysql(ubuntu)
安装
查看目录内容:
进入
出现以上的两个包说明编译成功
安装tpcc-mysql(CentOS)
大部分步骤和ubuntu一直,因为源代码都是由GitHub提供,只需要编译,和ubuntu稍有不同的就是安装下面两个东西:
yum install -y gcc
yum install -y mysql-devel
安装完毕编译一下就OK
创建测试数据
进入数据库建立名为tpcc的库:
成功创建tpcc数据库,然后把测试数据导进来:
参数详情: -D:数据库名称 -p 密码 create_table.sql tpcc-mysql文件夹下的创建表的SQL文件
可以看到表都被创建好了
创建索引完毕,结果如下
随意拿出某个表查看索引可以看到索引都被创建好了
那么我们现在把订单仓库的那些记录导入数据库中
我们执行下面这条命令:
./tpcc_load -h 127.0.0.1(这里填自己mysql的访问地址) -d tpcc(目标数据库) -u test(用户名) -p 123456(自己的密码) -w 1(想要导入几个仓库的信息)
数据量比较大,要等较长的时间,可以打把游戏等他load完
终于load完了
开始测试
-c :并行的线程数
-r :数据库的预热时间(这里设置了 4分钟)
-l :测试时间(这里设置了20分钟)
tpcc_log 结果存放日志
查看结果
sc: 表示执行成功且请求延时在最大阀值之内(5ms)的事务数
lt: 表示执行成功,但请求延时在最大阀值之外(5ms)的事务数
rt: 表示通过重试后执行成功的事务数
fl: 表示执行失败的事务数
avg_rt: 表示事务的平均处理延迟
OK 代表通过
NG 代表不通过
TpmC 每分钟处理事务个数,上图每秒钟处理4个事务(处理能力不高)
还有其他的结果根据自己情况进行分析
tpcc-mysql压力测试demo结束