Table of Contents
本文为姚远Oracle ACE(微信dataace)原创,请尊重知识产权,不接受任何抄袭、演绎和注明或未经注明出处的转载。
tpcc-mysql是percona开发的MySQL基准测试工具,基于TPC-C(下面简写成TPCC)衍生出来的产品。这个工具简单,实用,下面介绍一下它的使用。
安装
下载
wget https://github.com/Percona-Lab/tpcc-mysql/archive/master.zip
编译
scutech@scutech:~/tpcc-mysql-master/src$ make
出错,提示:
EnvironmentError: mysql_config not found
原因是没有安装:libmysqlclient-dev
apt-get install libssl-dev
再编译,又提示少包:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
再安装libssl-dev包后解决
编译后生成两个执行文件: …/tpcc_load …/tpcc_start
load数据
创建数据库
scutech@scutech:~/tpcc-mysql-master$ mysqladmin create tpcc1000
创建表
scutech@scutech:~/tpcc-mysql-master$ mysql tpcc1000 < ./create_table.sql
加外键
scutech@scutech:~/tpcc-mysql-master$ mysql tpcc1000 < ./add_fkey_idx.sql
生成数据,这里是虚拟机,仓库数就弄了10:
./tpcc_load -h127.0.0.1 -d tpcc1000 -u root -p dingjia -w 10
生成的数据一共994M。
这个目录下还有两个load数据的shell程序,可以并行load数据,可以根据需要选择。
测试
$ ./tpcc_start -h127.0.0.1 -d tpcc1000 -u root -p dingjia -w 10 -c 10 -r 60 -l 60
-w 指定仓库数量
-c 指定并发连接数
-r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好
-l 指定测试持续时间
-i 指定生成报告间隔时长
-f 指定生成的报告文件名
*************************************** *** ###easy### TPC-C Load Generator *** *************************************** ...... 10, trx: 514, 95%: 377.021, 99%: 935.513, max_rt: 1891.927, 517|1699.343, 52|1192.075, 51|4547.127, 51|3368.682 20, trx: 524, 95%: 199.280, 99%: 230.555, max_rt: 285.314, 525|238.213, 52|74.417, 53|423.024, 52|531.507 30, trx: 527, 95%: 195.440, 99%: 227.266, max_rt: 300.242, 524|209.653, 53|95.331, 52|518.558, 52|574.874 40, trx: 462, 95%: 267.297, 99%: 353.415, max_rt: 520.361, 463|286.389, 46|78.067, 47|781.022, 46|512.613 50, trx: 521, 95%: 209.809, 99%: 272.141, max_rt: 339.208, 521|186.396, 52|101.463, 52|420.545, 52|534.954 60, trx: 536, 95%: 206.506, 99%: 268.259, max_rt: 324.458, 537|170.507, 54|50.370, 54|424.217, 54|512.810 ...... <Constraint Check> (all must be [OK]) [transaction percentage] Payment: 43.50% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.33% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 0.00% [NG] * Payment: 0.00% [NG] * Order-Status: 12.30% [NG] * Delivery: 0.00% [NG] * Stock-Level: 0.00% [NG] * <TpmC> 3084.000 TpmC ---- TpmC结果值(每分钟事务数)
复制
– 以逗号分隔,共6列
– 第一列,第N次10秒
– 第二列,新订单成功执行压测的次数,
– 第三列,95%事务的响应时间|77.021,
– 第四列,99%事务的响应时间35.513,
– 第五列,最长订单1891.927,
其他几个交易和相应时间,可以忽略。
本文为姚远Oracle ACE(微信dataace)原创,请尊重知识产权,不接受任何抄袭、演绎和注明或未经注明出处的转载。