我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用tpcc-mysql对mysql进行TPCC性能测试

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用tpcc-mysql对mysql进行TPCC性能测试

这篇文章主要介绍如何使用tpcc-mysql对mysql进行TPCC性能测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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/class="lazy" data-src/
[root@D2-LZY245 class="lazy" data-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 -h227.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 -h227.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对mysql进行TPCC性能测试”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用tpcc-mysql对mysql进行TPCC性能测试

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用Gateling进行性能测试

这篇文章主要讲解了“如何使用Gateling进行性能测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Gateling进行性能测试”吧!Gatling是什么?Gatling 是一个用
2023-06-02

如何使用HammerDB进行MySQL基准测试

使用HammerDB进行MySQL基准测试HammerDB是一款开源工具,可用于对MySQL数据库执行负载测试和基准测试。它模拟真实世界负载,提供有关MySQL性能和可扩展性的见解。配置和运行:安装HammerDB并对其进行配置以连接到MySQL数据库。通过运行一个命令启动基准测试,实时监视指标并记录结果。分析和改进:分析HammerDB报告以识别性能瓶颈和进行改进。高级功能允许进行可自定义负载测试、并行测试和定制指标监视。最佳实践:使用类似于生产环境的硬件,逐步增加负载,并重复基准测试以获得准确的结果。
如何使用HammerDB进行MySQL基准测试
2024-04-13

工具 | 如何对 MySQL 进行 TPC-C 测试?

作者:丁源 RadonDB 测试负责人负责 RadonDB 云数据库、容器化数据库的质量性能测试,迭代验证。对包括云数据库以及容器化数据库性能和高可用方案有深入研究。|背景根据 DWorks 2020 年发布的《中国自研数据库登顶 TPC-C 的意义》[1]
工具 | 如何对 MySQL 进行 TPC-C 测试?
2015-03-18

如何使用Go语言对大型应用进行性能测试

如何使用 go 语言对大型应用进行性能测试?安装 beego 和 bombardier 工具。创建一个使用 beego 框架的 web 应用。创建一个使用 bombardier 生成的负载生成器脚本。运行性能测试并分析结果,包括请求数、成功
如何使用Go语言对大型应用进行性能测试
2024-05-08

如何使用Go语言对分布式应用进行性能测试

对于分布式应用程序的性能测试,go 提供了 vegeta 和 locust 两个框架。使用 vegeta,可创建自定义测试脚本并配置攻击选项,执行并发请求并生成详细报告。使用 locust 则可通过更友好的界面创建复杂工作负载,并通过 we
如何使用Go语言对分布式应用进行性能测试
2024-05-08

如何对 C++ 函数性能进行基准测试?

为 c++++ 函数进行基准测试,可采取以下步骤:使用计时工具(如 std::chrono 库)测量执行时间。编写基准测试函数以执行代码并返回执行时间。利用基准测试库获取高级功能,如统计收集和比较。如何对 C++ 函数性能进行基准测试基准
如何对 C++ 函数性能进行基准测试?
2024-04-19

JMeter如何对MySQL数据库进行压力测试

这篇文章将为大家详细讲解有关JMeter如何对MySQL数据库进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装并配置 JMeter下载官网下载,下载二进制的这个 zip配置环境变量然后解
2023-06-28

python如何使用cProfile针对回测进行性能分析

这篇文章主要讲解了“python如何使用cProfile针对回测进行性能分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python如何使用cProfile针对回测进行性能分析”吧!安装不
2023-06-02

如何使用Go语言进行高效的性能测试

go 语言提供了高效的性能测试工具,包括内置的 testing 包,用于编写基准测试。基准测试使用 benchmark 函数定义,并通过 run 函数运行。例如,可以编写一个基准测试来测量 fib 函数在不同输入下的执行时间。通过性能测试可
如何使用Go语言进行高效的性能测试
2024-05-07

如何进行CentOS 6与CentOS 7的性能测试对比

这篇文章主要为大家分析了如何进行CentOS 6与CentOS 7的性能测试对比的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何进行CentOS 6与Ce
2023-06-28

如何使用单元测试框架对 Golang 函数进行测试?

go 中使用单元测试框架进行单元测试:导入 testing 包。编写以 test 为前缀的单元测试函数。使用断言函数(如 assertequal())验证测试结果。运行单元测试(go test),验证函数的正确性。如何使用单元测试框架对 G
如何使用单元测试框架对 Golang 函数进行测试?
2024-04-16

mysql中如何进行数据压缩性能对比

这篇文章给大家分享的是有关mysql中如何进行数据压缩性能对比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 测试环境1.1 软硬件一台 64位 2.6.18-92 内核Linux开发机,4G内存,4个280
2023-06-25

Python如何对MySQL数据库进行性能调优和故障排查?(使用Python如何优化MySQL性能并进行故障排查?)

使用Python进行MySQL数据库性能调优,包括连接池、参数化查询、索引、查询优化、硬件配置和故障排查技巧。通过建立连接池、减少SQL注入风险、优化查询、使用索引、调整服务器设置和解决常见问题,可以显著提升MySQL数据库性能。
Python如何对MySQL数据库进行性能调优和故障排查?(使用Python如何优化MySQL性能并进行故障排查?)
2024-04-02

如何对MySQL进行性能调优和故障排查?

如何对MySQL进行性能调优和故障排查?一、引言MySQL是目前使用最广泛的关系型数据库管理系统之一,它在许多应用场景中都扮演着重要的角色。但是,随着数据量逐渐增大和业务需求的增长,MySQL的性能问题和故障排查变得越来越常见。本文将介绍如
2023-10-22

如何使用BenchmarkDotNet对C#代码进行基准测试

这篇文章给大家分享的是有关如何使用BenchmarkDotNet对C#代码进行基准测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。BenchmarkDotNet 是一个轻量级,开源的,强大的 .NET 工具包,
2023-06-14

编程热搜

目录