[MySQL]-压力测试_TPCC-MySQL
森格 | 2022年10月
对数据库学习来说,压力测试也是十分必要的一环,本文章主要介绍了TPCC-MySQL这个工具的使用。
一、基本概念
1.1 基准测试VS压力测试
基准测试: 直接简单、易于比较,用于评估服务器的处理能力。可能不关心核心业务。
压力测试: 针对不同主题对真实的业务数据进行测试,获得真实系统所能承受的压力。
1.2 TPCC是什么?
TPCC是由TPC(交易处理绩效委员会)推出的一套基准测试程序,一些硬件厂商会以TPCC作为对比标准之一。
1.3 TPCC-MySQL
模拟了一套电商环境,用于下单、支付、查订单、发货、查库存,模拟各个环节,获取数据,评估当前的环境的吞吐量。
二、TPCC-MySQL下载
wget http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz
tar -zxf tpcc-mysql-src.tgz
cd src
make
三、TPCC-MySQL的使用
3.1 创建测速数据库tpcc
查看TPCC-MySQL目录下的文件,会发现有一些自带的sql文件
创建测试数据库
mysql>create database tpcc
mysql -h 127.0.0.1 -P 3306 -uroot -pxxx tpcc < create_table.sql
添加索引
mysql -h 127.0.0.1 -P 3306 -uroot -pxxx tpcc < add_fkey_idx.sql
查看测试数据库
mysql -h 127.0.0.1 -P 3306 -uroot -pxxx tpcc -e "show tables";
表格说明:
customer-客户表,district-地区表,history历史订单表,item商品条目表,new_orders新订单表,order_line订单状态表,orders下单表,stock库存表,warehouse仓库表。
3.2 加载数据
./tpcc_load 127.0.0.1:3306 tpcc root password 10
3.3 测试
[~ tpcc-mysql]./tpcc_start --help //查看帮助命令
参数说明:
-
-w:指定仓库数量。
-
-c:指定并发连接数。
-
-r:指定开始测试前进行warmup的时间,进行预热后,测试效果更好(真实测试场景中,预热时间不小于5分钟,持续压测时长不小于30分钟)。
-
-l:指定测试持续时间。
-
-i:指定生成报告间隔时长。
-
-f:指定生成的报告名称。
-
-t:更详细的操作信息。
以第一行为例子:以逗号为分隔,第一个10秒,创建订单3336次,失败0,90%的订单花费1.287s,最长的一个花费1.571s,后面依次的动作是:支付、查询订单状态、发货、查询库存。
第一次处理结果:
sc:成功,lt:操作延迟,retry:重试,failure:操作失败
第二次处理结果,意义同上。
测试结果:
事务比例
响应时间
TpmC: transactions per minute ,每分钟处理订单个数的能力。
计算方法:新订单总数除以分钟数(每个10秒内第一列总和除以分钟数)。