[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 -h127.0.0.1 -P3306-uroot-pxxx tpcc < create_table.sql
添加索引
mysql -h127.0.0.1 -P3306-uroot-pxxx tpcc < add_fkey_idx.sql
查看测试数据库
mysql -h127.0.0.1 -P3306-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秒内第一列总和除以分钟数)。
四、总结
TPC-C是业界常用的一套Benchmark,由TPC委员会制定发布,用于评测数据库的联机交易处理(偏向OLTP能力)。主要涉及10张表,包含了NewOrder(新订单的生成)、Payment(订单付款)、OrderStatus(最近订单查询)、Delivery(配送)和StockLevel(库存缺货状态分析)等五类业务事务模型。TPC-C使用tpmC值(Transactions per Minute)来衡量系统最大有效吞吐量(MQTh,Max Qualified Throughput),其中Transactions以NewOrder Transaction为准,即最终衡量单位为每分钟处理的新订单数。
版权归原作者 森格的博 所有, 如有侵权,请联系我们删除。