Tpcc测试工具详解

这篇具有很好参考价值的文章主要介绍了Tpcc测试工具详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

tpcc

TPCC-MYSQL 是一个用于执行 TPCC(Transaction Processing Performance Council)基准测试的工具集合。TPCC 是一个广泛使用的数据库基准测试,用于衡量数据库系统在高并发负载下的性能。TPCC-MYSQL 专门针对 MySQL 数据库进行性能测试,它使用标准的 TPCC 基准测试规范,并提供一系列工具和脚本来准备测试数据、运行测试和分析测试结果。

tpcc-mysql业务逻辑

下面是 TPCC-MYSQL 的业务逻辑详细介绍:

  1. 数据库模式(Schema):
    TPCC-MYSQL 使用一组相关的数据库表来表示不同的业务实体,例如仓库、客户、订单、商品等。这些表之间建立了适当的关系,以模拟真实的业务场景。在运行 TPCC-MYSQL 之前,需要创建这些数据库表,并根据 TPCC 的要求填充测试数据。

  2. 仓库(Warehouse):
    一个仓库代表了一个具有存储功能的实体,用于存放商品。TPCC-MYSQL 可以模拟多个仓库的情况。

  3. 商品(Item):
    商品是指可以在仓库中存放和销售的产品。每个仓库都有一定数量的商品,这些商品可以随机分配给不同的仓库。

  4. 客户(Customer):
    客户代表购买商品的个人或组织。每个客户可以有一些基本信息,例如姓名、地址等。

  5. 订单(Order):
    订单是客户购买商品的记录。每个订单包含了购买的商品、数量、价格等信息。

  6. 支付(Payment):
    支付是客户支付订单的记录。每个支付包含了支付的金额、日期等信息。

  7. 交货(Delivery):
    交货是将商品交付给客户的记录。每个交货包含了交货的日期、数量等信息。

  8. 填充测试数据:
    在执行 TPCC-MYSQL 之前,需要使用 tpcc_load 工具来填充测试数据。该工具会根据指定的仓库数量、客户数量和商品数量生成适量的测试数据。

  9. 事务处理:
    TPCC-MYSQL 使用一系列事务来模拟不同的业务操作,例如客户下单、付款、交货等。这些事务包含了多个数据库操作,涉及多个表之间的数据交互。

  10. 并发测试:
    TPCC-MYSQL 可以在多个并发用户之间执行事务处理,以模拟高并发负载下的数据库性能。并发测试是衡量数据库系统处理并发事务的能力的重要指标。

  11. 测量性能:
    在执行 TPCC-MYSQL 测试后,可以使用 tpcc_starttpcc_report 工具来测量和分析数据库系统的性能表现。报告中可能包含吞吐量、响应时间、事务成功率等指标,这些指标可以帮助评估数据库系统的性能和可伸缩性。

下载源码包,解压安装

wget  http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz
[root@localhost tcpp]# tar xf tpcc-mysql-src.tgz 
cd tpcc-mysql/src
[root@localhost src]# make

make后会生成两个二进制工具tpcc_load(提供初始化数据的功能)和tpcc_start(进行压力测试)

[root@localhost tpcc-mysql]# ls
add_fkey_idx.sql  drop_cons.sql  schema2  tpcc_load
count.sql         load.sh        scripts  tpcc_start

根据您提供的文件列表,以下是关于 TPCC-MYSQL 文件夹中的每个文件的详细信息:

  1. add_fkey_idx.sql: 这个文件可能包含用于添加外键索引的 SQL 语句。外键索引用于维护表之间的关联性,并能加速数据检索和连接。

  2. drop_cons.sql: 这个文件可能包含用于删除外键约束的 SQL 语句。在进行 TPCC 测试之前,可能需要清除外键约束,以便更轻松地加载数据。

  3. schema2: 这是一个文件夹,通常包含与数据库模式(Schema)相关的文件。可能包含创建表、视图、存储过程等的 SQL 语句。

  4. tpcc_load: 这是一个用于加载测试数据的工具或脚本。在进行 TPCC 基准测试之前,需要加载适当的测试数据,以模拟真实的数据库工作负载。

  5. count.sql: 这个文件可能包含一些用于统计数据量或验证数据完整性的 SQL 查询语句。

  6. load.sh: 这是一个 Shell 脚本,可能用于执行数据加载操作的脚本。它可能调用了 tpcc_load 工具,并指定了一些加载的参数。

  7. scripts: 这是一个文件夹,可能包含其他执行 TPCC 测试所需的脚本文件。

  8. tpcc_start: 这可能是一个用于启动 TPCC 测试的脚本。它可能设置了测试的参数,并调用其他必要的脚本来开始基准测试过程。

tcpp测试准备,初始化数据库

创建数据库

mysqladmin -uwrite -p'123456' -h 192.168.2.25 -P 7002 create  tpcc

导入数据

如果远程导入不行,可以直接将数据转送到master主机上,将数据导入就可了

mysql -h 192.168.2.25 -P 7002 -uwrite -p'123546' tpcc <create_table.sql
scp create_table.sql add_fkey_idx.sql root@192.168.2.3:/root
[root@master-mysql ~]# mysql -uroot -p'123456' tpcc <create_table.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@master-mysql ~]# mysql -uroot -p'123456' tpcc <add_fkey_idx.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@tpcc 15:27 mysql>show tables;
+----------------+
| Tables_in_tpcc |
+----------------+
| customer       |
| district       |
| history        |
| item           |
| new_orders     |
| order_line     |
| orders         |
| stock          |
| warehouse      |
+----------------+
9 rows in set (0.00 sec)

加载数据

./tpcc_load 192.168.2.25:7002 tpcc write 123456 2

数据量大小:参数 2 指定了要加载的仓库数量。加载的数据量越大,执行时间可能越长。

想尽快看到效果的伙伴,可以把这个数据调小些。

出现问题:

[root@localhost tpcc-mysql]# ./tpcc_load 192.168.2.25:7002 tpcc write 123456 2
./tpcc_load: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

解决

确认库文件位置:如果已经安装了 MySQL 客户端库,但是找不到 libmysqlclient.so.20 文件,您需要确定它的位置。通常,MySQL 客户端库的位置是在 /usr/lib/usr/lib64 目录下

[root@localhost tpcc-mysql]# find / -name 'libmysqlclient.so.20'
/usr/local/mysql/lib/libmysqlclient.so.20
echo "/usr/local/mysql/lib" | sudo tee -a /etc/ld.so.conf
sudo ldconfig

进行测试

注意:server等信息与步骤4中保持一致

TPCC-MYSQL 是一个用于测试数据库性能的基准测试工具,下面是 tpcc_start 命令的详细参数说明和用法:

./tpcc_start -h [server_host] -P [port] -d [database_name] -u [mysql_user] -p [mysql_password] -w [warehouses] -c [connections] -r [warmup_time] -l [running_time] -i [report_interval] -f [report_file] -t [trx] > out1

各个参数的用法如下:

  • -h server_host: 指定数据库服务器的主机名或IP地址。

  • -P port: 指定数据库服务器的端口号,默认为3306。

  • -d database_name: 指定用于测试的数据库名称。

  • -u mysql_user: 指定连接数据库所使用的用户名。

  • -p mysql_password: 指定连接数据库所使用的密码。

  • -w warehouses: 指定要创建的仓库数量。仓库用于存储商品和处理订单。

  • -c connections: 指定并发连接数,即同时运行的线程数。默认为1,可以根据测试需求调整该值。

  • -r warmup_time: 指定热身时间,即在正式测试之前预先运行一段时间以将数据加载到内存中。热身是为了使缓存预热,提高测试结果的准确性。默认为10秒。

  • -l running_time: 指定测试时间,即执行正式测试的时间长度。默认为20秒。

  • -i report_interval: 指定生成测试报告的时间间隔。在测试期间,TPCC-MYSQL 会定期生成报告,以便观察测试过程中的性能指标。建议生成报告的间隔时间不低于30分钟,以确保获得足够的数据。

  • -f report_file: 指定测试结果输出文件的名称。一般将测试结果输出到一个日志文件,以便后续分析和查看。

  • -t trx: 指定输出文件的名称。该文件记录了执行测试期间的所有事务操作,包括成功和失败的事务。

执行 tpcc_start 命令后,它将启动测试并运行指定时间。在测试结束后,您可以查看输出文件 out1,以及报告文件 report_file,来了解测试期间数据库的性能表现。

./tpcc_start -h 192.168.2.25 -P 7002 -d tpcc -u write -p '123456' -w 2 -c 12 -r 300 -l 360 -f test0.log -t test1.log - >test0.out
[root@localhost tpcc-mysql]# cat test0.out 
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.2.25'
option P with value '7002'
option d with value 'tpcc'
option u with value 'write'
option p with value '123456'
option w with value '2'
option c with value '12'
option r with value '300'
option l with value '360'
option f with value 'test0.log'
option t with value 'test1.log'
non-option ARGV-elements: - 
<Parameters>
     [server]: 192.168.2.25
     [port]: 7002
     [DBname]: tpcc
       [user]: write
       [pass]: 123456
  [warehouse]: 2
 [connection]: 12
     [rampup]: 300 (sec.)
    [measure]: 360 (sec.)

RAMP-UP TIME.(300 sec.)

MEASURING START.

  10, 677(190):9.609|283.788, 678(0):2.243|203.337, 69(0):1.168|5.442, 68(0):14.206|40.242, 68(2):19.999|59.394
  20, 765(231):7.100|8.084, 764(0):1.552|1.866, 75(0):0.698|0.750, 77(0):8.885|8.978, 76(5):19.999|21.524
  30, 761(236):7.015|7.196, 759(0):1.603|2.238, 77(0):0.845|0.866, 76(0):8.885|9.294, 77(9):19.999|21.956
  40, 680(203):7.233|80.320, 685(0):1.715|2.160, 69(0):0.798|0.804, 68(0):9.011|9.381, 67(10):19.999|34.428
  50, 647(212):8.568|39.590, 644(1):1.821|16.209, 63(0):1.151|1.383, 65(0):9.928|11.700, 65(15):19.999|24.729
  60, 658(192):9.849|12.151, 656(0):2.417|3.684, 66(0):0.836|1.166, 66(0):10.870|11.271, 65(8):19.999|29.011
  70, 712(233):9.885|62.567, 717(1):2.234|5.236, 72(0):0.927|1.120, 70(0):19.382|67.972, 72(14):19.999|32.404
  80, 645(217):8.361|34.979, 645(0):2.618|3.911, 64(0):0.815|1.236, 65(0):11.297|12.007, 65(13):19.999|34.617
  90, 616(227):10.123|24.151, 614(2):2.788|6.256, 62(0):1.082|1.552, 62(0):13.038|13.162, 61(14):19.999|34.818
 100, 661(243):8.853|12.499, 657(1):2.111|6.116, 65(0):0.868|0.951, 65(0):12.572|13.628, 65(17):19.999|25.945
 110, 710(267):8.887|13.115, 714(0):2.035|3.214, 72(0):1.031|1.164, 72(0):11.494|11.545, 72(24):19.999|30.804
 120, 717(246):9.264|12.371, 713(0):1.908|2.807, 71(0):0.855|1.004, 71(0):19.999|24.060, 72(18):19.999|30.451
 130, 708(239):8.596|10.882, 707(0):2.030|3.013, 71(0):0.857|0.959, 71(0):10.861|11.188, 70(21):19.999|27.728
 140, 588(275):14.900|20.400, 591(1):3.257|5.346, 59(0):1.471|1.503, 58(0):16.165|18.864, 59(26):19.999|40.590
 150, 657(157):7.862|38.557, 663(0):1.692|3.636, 66(0):0.978|1.223, 67(0):9.459|10.673, 66(13):19.999|62.886
 160, 589(168):7.498|14.794, 586(0):1.813|2.117, 59(0):0.787|1.700, 59(0):9.913|10.766, 59(10):19.999|23.412
 170, 752(194):7.096|7.933, 748(0):1.481|1.808, 75(0):0.788|0.834, 75(0):8.384|8.727, 76(9):19.999|22.745
 180, 785(241):6.907|7.807, 784(0):1.583|2.197, 78(0):0.686|0.924, 78(0):8.651|9.104, 77(5):19.999|22.638
 190, 771(227):7.447|10.232, 770(0):1.613|2.382, 77(0):0.782|1.041, 77(0):9.203|9.313, 78(15):19.999|23.728
 200, 686(253):10.316|17.892, 684(0):2.141|3.064, 69(0):1.054|1.715, 69(0):10.166|17.150, 69(19):19.999|36.686
 210, 593(186):9.524|17.592, 597(0):2.494|4.665, 60(0):1.591|1.775, 59(0):14.900|17.007, 59(17):19.999|35.502
 220, 617(177):9.079|16.471, 615(1):2.039|13.194, 61(0):0.711|1.426, 62(0):11.674|11.768, 62(14):19.999|27.944
 230, 738(252):7.925|11.160, 741(0):1.793|2.965, 74(0):0.767|0.881, 74(0):10.863|11.546, 73(11):19.999|25.909
 240, 725(253):7.808|12.047, 728(0):2.179|2.994, 73(0):0.730|1.008, 72(0):9.999|11.472, 72(21):19.999|27.928
 250, 525(333):13.687|16.571, 521(1):3.305|5.677, 51(0):1.767|2.185, 53(0):14.808|16.540, 52(44):19.999|42.772
 260, 613(329):12.063|24.300, 609(1):2.546|6.719, 62(0):1.491|2.242, 61(0):14.331|23.131, 62(44):19.999|38.645
 270, 515(243):12.594|17.291, 521(3):3.319|7.934, 52(0):1.751|2.218, 51(0):15.489|17.018, 52(29):19.999|39.224
 280, 599(209):9.682|16.133, 597(0):2.326|3.089, 59(0):0.838|0.888, 61(0):14.361|14.406, 60(16):19.999|32.602
 290, 695(183):7.802|9.971, 695(0):1.673|3.705, 70(0):0.753|0.969, 69(0):10.170|10.787, 69(9):19.999|23.973
 300, 756(213):7.334|9.825, 752(0):1.620|3.822, 76(0):0.704|0.710, 75(0):9.623|11.539, 76(9):19.999|21.460
 310, 727(254):7.609|9.025, 729(0):1.908|2.261, 72(0):0.980|1.791, 73(0):10.384|11.064, 72(14):19.999|26.970

根据输出的内容,./tpcc_start 命令执行了 TPC-C 测试的加载和性能测量过程。test0.out 文件中记录了 tpcc_start 命令执行过程中的输出信息,包括测试参数、测试进度、性能指标等。以下是输出内容的解析:

  • 首部显示了 TPC-C 测试的相关信息,包括测试名称 “TPC-C Load Generator”,以及使用的选项和参数。

  • <Parameters> 部分列出了使用的测试参数,包括服务器地址、端口、数据库名称、用户名、密码、仓库数量、并发连接数、热身时间和测试时间。

  • 接下来是测试的执行过程,每行表示一个时间点的测试结果。例如,第一行 “RAMP-UP TIME.(300 sec.)” 表示热身时间为 300 秒,即系统在这段时间内预热。之后,每行显示了一系列的性能指标,例如各个仓库的交易成功率、平均响应时间等。具体的指标含义可能需要查阅 TPCC-MYSQL 的文档或者相关资料。

  • 最后,测试执行完成,可能会显示测试的总体结果或者总结性信息。

根据输出内容,您可以了解到测试的进度和性能指标。如果需要更详细的测试结果,建议查阅生成的日志文件和报告文件,它们通常包含更全面的测试结果和详细的性能指标分析。文章来源地址https://www.toymoban.com/news/detail-707805.html

到了这里,关于Tpcc测试工具详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【软件测试】单元测试工具---Junit详解

    JUnit是一个Java语言的单元测试框架。 虽然我们已经学习了selenium测试框架,但是有的时候测试用例很多,我们需要一个测试工具来管理这些测试用例,Junit就是一个很好的管理工具,简单来说Junit是一个针对Java单元测试的框架。Junit由Junit Platform _ Junit Jupiter + junit Vintage3部分组

    2024年02月15日
    浏览(42)
  • JMeter性能测试工具详解

    1、JMeter简介 Meter 是轻量级的接口性能测试工具,同时具备一定程度的接口自动化测试能力。 JMeter 支持多协议,其中较适合测试使用公有协议(如 HTTP、JDBC 等)的服务或模块,特别适合 B/S 结构的后台性能系统。 JMeter 有大量第三方插件,也可以比较方便的编写适合自己使用

    2023年04月08日
    浏览(54)
  • 测试工具之JMH详解

    在日常开发中,我们对一些代码的调用或者工具的使用会存在多种选择方式,在不确定他们性能的时候,我们首先想要做的就是去测量它。大多数时候,我们会简单的采用多次计数的方式来测量,来看这个方法的总耗时。 但是,如果熟悉 JVM 类加载机制的话,应该知道 JVM 默

    2024年02月08日
    浏览(44)
  • 接口测试工具:Postman详解

    🍅 视频学习: 文末有免费的配套视频可观看 🍅  关注公众号【互联网杂货铺】,回复 1  ,免费获取软件测试全套资料,资料在手,涨薪更快 Postman 是一款功能强大的 API 开发和测试工具,以下是一些高级用法的详细介绍和操作步骤。 环境变量允许你设置特定于环境(如开

    2024年04月09日
    浏览(59)
  • 软件测试开发工程师常用的测试工具详解

    1. 操作系统: Linux: vmware: 用于虚拟化环境,创建和管理虚拟机。 xshell、xftp、ssh: 提供对Linux服务器的远程访问和文件传输。 2. 数据库: MySQL: SQLyog、Navicat: 前端连接工具,简化MySQL数据库的管理和操作。 Oracle: PLSQL Developer、Navicat: 前端连接工具,用于Oracle数据库的开发和

    2024年02月02日
    浏览(69)
  • 接口测试工具——Postman使用详解

    目录 Postman简介 Postman主界面 菜单栏 工具栏 请求管理区 环境管理区 请求设计区 发送请求 发送GET请求 Postman发送GET请求 发送表单格式POST请求 发送JSON格式POST请求 发送XML格式POST请求 发送文件上传类型的请求 响应 环境和变量 环境变量设置 环境变量使用 全局变量 测试脚本及

    2024年02月08日
    浏览(57)
  • Python测试工具-Pytest使用详解

    Pytest是一个全功能Python测试工具,支持第三方扩展插件,能够使用其开展单元测试和复杂功能测试。可以和selenium、requests、appium等模块结合使用实现WEB UI、API、APP自动化测试。 详见参考指南文档:https://docs.pytest.org/en/7.1.x/# PDF文档 : https://media.readthedocs.org/pdf/pytest/latest/pyt

    2024年02月02日
    浏览(39)
  • 自动化测试工具——Selenium详解

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月20日
    浏览(60)
  • UI自动化测试工具详解

    1、QTP:商业化的功能测试工具,收费,可用于web自动化测试 2、Robot Framework:基于Python可扩展的驱动的测试自动化框架 3、Selenium :开源的web自动化测试工具,免费,主要用于功能测试 ,特点:1)开源软件 2)跨平台 3)支持多种语言 3)支持多种浏览器 3)功能强大、

    2024年02月09日
    浏览(48)
  • Onvif协议及协议测试工具使用详解

    目录 ​1、Onvif协议的发展 2、Onvif协议概述及优势 2.1    协议概述 2.2、规范优势

    2024年01月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包