暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

简单实用的MySQL基准测试工具 TPCC-MySQL

原创 姚远 2020-05-22
3332

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)原创,请尊重知识产权,不接受任何抄袭、演绎和注明或未经注明出处的转载。

最后修改时间:2022-08-11 14:26:29
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论