tpcc-mysq是满足TPCC规范的性能测试工具,具体步骤如下:

1、下载

从https://github.com/Percona-Lab/tpcc-mysql下载安装包。

2、安装

[root@D2-LZY245 ~]# unzip tpcc-mysql-master.zip

[root@D2-LZY245 ~]# cd tpcc-mysql-master/src/

[root@D2-LZY245 src]# make

[root@D2-LZY245 ~]# ll tpcc-mysql-master/tpcc_*

-rwxrwxr-x 1 root root  81114 May 19 15:12 tpcc-mysql-master/tpcc_load

-rwxrwxr-x 1 root root 188582 May 19 15:13 tpcc-mysql-master/tpcc_start

编译完成后,就有了tpcc_load和tpcc_start这两个脚本。tpcc_load用于初始化数据,tpcc_start用于执行基准测试。

3、加载

[root@D2-LZY245 ~]# mysqladmin -uroot -p123456 create tpcc

[root@D2-LZY245 ~]# mysql -uroot -p123456 tpcc < /root/tpcc-mysql-master/create_table.sql

[root@D2-LZY245 ~]# mysql -uroot -p123456 tpcc < /root/tpcc-mysql-master/add_fkey_idx.sql

[root@D2-LZY245 ~]# cd /root/tpcc-mysql-master/

[root@D2-LZY245 tpcc-mysql-master]# ./tpcc_load -h127.0.0.1 -dtpcc -uroot -p123456 -w5

其中w表示仓库的数量,数量越多,数据量也越大,这里只初始化了5个仓库。在生产环境中建议设置至少100以上。

如果提示找不到libmysqlclient.so.20,则需要创建下面的软连接:

[root@D2-LZY245 ~]# ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

4、测试

配置如下参数:

max_connections=3000

innodb_buffer_pool_size=1G

innodb_flush_log_at_trx_commit = 1

sync_binlog=1

innodb_support_xa=1

开始测试:

[root@D2-LZY245 tpcc-mysql-master]# ./tpcc_start -h127.0.0.1 -P3306 -dtpcc -uroot -p123456 -w5 -c10 -r10 -l60 -i5

***************************************

*** ###easy### TPC-C Load Generator ***

***************************************

option h with value '127.0.0.1'

option P with value '3306'

option d with value 'tpcc'

option u with value 'root'

option p with value '123456'

option w with value '5'

option c with value '10'

option r with value '10'

option l with value '60'

option i with value '5'

[server]: 127.0.0.1

[port]: 3306

[DBname]: tpcc

[user]: root

[pass]: 123456

[warehouse]: 5

[connection]: 10

[rampup]: 10 (sec.)

[measure]: 60 (sec.)

RAMP-UP TIME.(10 sec.)

MEASURING START.

5, trx: 893, 95%: 42.974, 99%: 51.769, max_rt: 78.867, 897|64.315, 89|34.091, 90|108.740, 89|153.851

10, trx: 899, 95%: 42.513, 99%: 47.764, max_rt: 56.527, 897|45.126, 90|11.137, 90|107.048, 90|151.175

15, trx: 921, 95%: 41.732, 99%: 48.921, max_rt: 74.593, 919|61.086, 93|11.268, 91|122.762, 91|117.930

20, trx: 905, 95%: 42.184, 99%: 47.308, max_rt: 72.272, 906|38.270, 90|10.840, 92|126.833, 91|138.162

25, trx: 918, 95%: 42.260, 99%: 51.183, max_rt: 66.282, 914|39.754, 92|10.141, 91|126.593, 91|127.785

30, trx: 934, 95%: 42.285, 99%: 50.212, max_rt: 56.423, 939|37.721, 93|12.561, 93|114.696, 94|133.147

35, trx: 948, 95%: 41.532, 99%: 49.808, max_rt: 59.926, 945|35.327, 95|6.179, 95|104.323, 95|125.155

40, trx: 949, 95%: 40.562, 99%: 46.411, max_rt: 65.310, 950|49.201, 95|7.696, 96|117.888, 94|131.387

45, trx: 953, 95%: 40.067, 99%: 46.689, max_rt: 61.701, 955|50.164, 95|5.216, 95|110.307, 96|118.410

50, trx: 953, 95%: 40.537, 99%: 47.864, max_rt: 87.589, 950|48.743, 95|6.670, 95|118.108, 95|138.823

55, trx: 947, 95%: 39.995, 99%: 46.203, max_rt: 62.354, 948|41.478, 95|6.599, 94|114.913, 95|132.025

60, trx: 986, 95%: 40.477, 99%: 45.516, max_rt: 59.243, 982|37.025, 98|8.749, 99|105.574, 99|127.634

STOPPING THREADS..........

[0] sc:44 lt:11162  rt:0  fl:0 avg_rt: 32.3 (5)

[1] sc:1734 lt:9468  rt:0  fl:0 avg_rt: 9.3 (5)

[2] sc:1063 lt:57  rt:0  fl:0 avg_rt: 3.3 (5)

[3] sc:690 lt:431  rt:0  fl:0 avg_rt: 90.5 (80)

[4] sc:0 lt:1120  rt:0  fl:0 avg_rt: 114.3 (20)

in 60 sec.

[0] sc:44  lt:11162  rt:0  fl:0

[1] sc:1734  lt:9469  rt:0  fl:0

[2] sc:1063  lt:57  rt:0  fl:0

[3] sc:690  lt:431  rt:0  fl:0

[4] sc:0  lt:1120  rt:0  fl:0

(all must be [OK])

[transaction percentage]

Payment: 43.47% (>=43.0%) [OK]

Order-Status: 4.35% (>= 4.0%) [OK]

Delivery: 4.35% (>= 4.0%) [OK]

Stock-Level: 4.35% (>= 4.0%) [OK]

[response time (at least 90% passed)]

New-Order: 0.39%  [NG] *

Payment: 15.48%  [NG] *

Order-Status: 94.91%  [OK]

Delivery: 61.55%  [NG] *

Stock-Level: 0.00%  [NG] *

11206.000 TpmC

其中:

-w:仓库数量

-c:并发线程数

-r:预热时间,以秒为单位,默认10秒,主要目的是为了将数据加载到内存。

-l:运行时间,以秒为单位,默认20秒

-i:输出时间间隔

真实测试场景中,建议预热时间不小于5分钟,持续压测时长不小于30分钟,否则测试数据可能不具参考意义。

5、结果

5, trx: 893, 95%: 42.974, 99%: 51.769, max_rt: 78.867, 897|64.315, 89|34.091, 90|108.740, 89|153.851

5表示从测试开始到现在的时间为5秒。

trx: 893表示这个时间间隔完成的新订单事物数量,实际上就是吞吐量,越大越好。

95%: 42.974表示这个时间间隔内95%的新订单事物响应时间为42.974秒。

99%: 51.769表示这个时间间隔内99%的新订单事物响应时间为51.769秒。

max_rt: 78.867表示这个时间间隔内新订单事物最大响应时间为78.867秒。

897|64.315, 89|34.091, 90|108.740, 89|153.851这几个表示其他种类事物的吞吐量和响应时间,可以忽略。

[0] sc:44 lt:11162  rt:0  fl:0 avg_rt: 32.3 (5) //表示新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数。

[1] sc:1734 lt:9468  rt:0  fl:0 avg_rt: 9.3 (5) //表示支付业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数。

[2] sc:1063 lt:57  rt:0  fl:0 avg_rt: 3.3 (5) //表示订单状态业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数。

[3] sc:690 lt:431  rt:0  fl:0 avg_rt: 90.5 (80)  //表示发货业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数。

[4] sc:0 lt:1120  rt:0  fl:0 avg_rt: 114.3 (20)  //表示库存业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数。

(all must be [OK])  //下面所有的结果必须为OK

[transaction percentage]

Payment: 43.47% (>=43.0%) [OK]  //支付模块占总业务的43.47%

Order-Status: 4.35% (>= 4.0%) [OK]  //订单状态模块占总业务的4.35%

Delivery: 4.35% (>= 4.0%) [OK]  //发货模块占总业务的4.35%

Stock-Level: 4.35% (>= 4.0%) [OK]  //库存模块占总业务的4.35%

[response time (at least 90% passed)]  //响应时间是否满足

New-Order: 0.39%  [NG] *

Payment: 15.48%  [NG] *

Order-Status: 94.91%  [OK]

Delivery: 61.55%  [NG] *

Stock-Level: 0.00%  [NG] *

指标如下:

New-Order 5ms

Payment 5ms

Order-Status 5ms

Delivery 80ms

Stock-Level 20ms

11206.000 TpmC  //每分钟能够处理的新订单数量。

tpcc-mysql_使用tpcc-mysql对mysql进行TPCC性能测试相关推荐

  1. MySQL测试工具之-TPCC(业界通用的压测工具)

    TPCC业界通用的压测工具,主要是压数据库性能. 首先安装tpcc 官网地址:https://github.com/Percona-Lab/tpcc-mysql [root@test3 src]# u ...

  2. 无法访问linux mysql_远程无法访问linux Mysql解决方案(转)

    在网上有很多关于这个的解决方案,我也采用了 写的比较详细的如: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更 ...

  3. rancher安装mysql_四、rancher搭建Mysql集群化部署,做到同步备份

    一.Rancher基础镜像查找: 1.基础镜像操作地址:https://hub.docker.com/r/library/mariadb/ 2.选择自己需要的镜像进行搜索,里面有对应版本:也有最新的如 ...

  4. js 连接mysql_关于Node.js 链接mysql超时处理(默认8小时)

    备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法: 1.封装mysql.js var mysql = require('mysql');var connecti ...

  5. 虚拟机无法访问主机mysql_解决虚拟机linux端mysql数据库无法远程访问

    前天无聊在虚拟机中的CentOS上装了一个mysql玩玩,突然想用jdbc连接用java操作下数据库,可是怎么都连接不上,具体情况为: 1.ping 192.168.16.128 成功 2.telne ...

  6. 新浪sae平台mysql_新浪sae平台mysql

    用户名: access key ---(在左侧 汇总信息查) 密 码: secret key ---(在左侧 汇总信息查) 主库域名: 点击mysql=>管理mysql=>后出现的域名和端 ...

  7. centos 如何登陆mysql_[CentOS 0010] CentOS 配置mysql允许远程登录

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  8. apache 编译安装php mysql_编译安装APACHE+PHP+MYSQL

    adminjun qq:279872 网络技术研究会群:8070045 中国linux公社论坛群:4478487 其实这是我用RouterOS和redhat linux进行pppoe服务器的配置及在r ...

  9. uos系统断网怎么安装mysql_[学习笔记] UOS安装MySQL

    Linux系统上安装MySQL还是比较麻烦的,不如windows下一步下一步就可以搞定的 linux下安装有几种方法,下面介绍的是下载全部文件安装的,另外还有apt.yum安装等. 1.下载Mysql ...

  10. linux 指定库名 登录mysql_数据库学习笔记之MySQL(01)

    目录 01. 什么是数据库? 02. 常见数据库 03. MySQL简介 04. 数据库系统(Database System)的组成 05. SQL语言 06. SQL语言组成 07. MySQL的常 ...

最新文章

  1. SSH 远程执行任务
  2. 弱电工程室内外光纤敷设有哪些技术要求
  3. AngularJS学习---REST和自定义服务(REST and Custom Services) ngResource step 11
  4. 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权
  5. C atoi函数
  6. Tracing mysqld Using DTrace
  7. 深入理解JVM(第二版读书笔记)
  8. CentOS 7下Red5流媒体服务器的搭建与测试
  9. HTML静态网页作业——动漫火影忍者 (HTML+CSS)制作个人主页课程设计
  10. Qt 如何获取本机ip地址
  11. 智慧地产-售楼中心 3D 沙盘可视化
  12. SQL中常用的字符串LEFT函数和RIGHT函数详解
  13. mysql emoy表情_emo表情包 - emo微信表情包 - emoQQ表情包 - 发表情 fabiaoqing.com
  14. 7-1 计算平均成绩 (15分)
  15. 降低Java垃圾回收开销的5条建议
  16. SpringBoot启动流程简要
  17. 项目实训(十六)——总结
  18. SQLsever数据库期末复习笔记
  19. 皕杰小程序之app.josn
  20. Vue 路由参数传递

热门文章

  1. SDUT PTA 图论
  2. 2021 OWASP TOP 10 漏洞指南
  3. 哈夫曼abcdef编码
  4. [ASP.NET]ASP.NET中的Inherits、CodeFile、CodeBehind的区别详解及OWIN及IDENTITY
  5. java判断excel能否正常打开
  6. 7-20 简单计算器分数 (详解)
  7. Unity集成内嵌网页插件-支持Android和IOS
  8. TTL以及LVDS接口传输
  9. cpp lexer java_lexer
  10. 软件工程第一次作业(补充)