文章目录

tpcc下载源码包,解压安装tcpp测试准备,初始化数据库进行测试

tpcc

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

tpcc-mysql业务逻辑

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

数据库模式(Schema): TPCC-MYSQL 使用一组相关的数据库表来表示不同的业务实体,例如仓库、客户、订单、商品等。这些表之间建立了适当的关系,以模拟真实的业务场景。在运行 TPCC-MYSQL 之前,需要创建这些数据库表,并根据 TPCC 的要求填充测试数据。 仓库(Warehouse): 一个仓库代表了一个具有存储功能的实体,用于存放商品。TPCC-MYSQL 可以模拟多个仓库的情况。 商品(Item): 商品是指可以在仓库中存放和销售的产品。每个仓库都有一定数量的商品,这些商品可以随机分配给不同的仓库。 客户(Customer): 客户代表购买商品的个人或组织。每个客户可以有一些基本信息,例如姓名、地址等。 订单(Order): 订单是客户购买商品的记录。每个订单包含了购买的商品、数量、价格等信息。 支付(Payment): 支付是客户支付订单的记录。每个支付包含了支付的金额、日期等信息。 交货(Delivery): 交货是将商品交付给客户的记录。每个交货包含了交货的日期、数量等信息。 填充测试数据: 在执行 TPCC-MYSQL 之前,需要使用 tpcc_load 工具来填充测试数据。该工具会根据指定的仓库数量、客户数量和商品数量生成适量的测试数据。 事务处理: TPCC-MYSQL 使用一系列事务来模拟不同的业务操作,例如客户下单、付款、交货等。这些事务包含了多个数据库操作,涉及多个表之间的数据交互。 并发测试: TPCC-MYSQL 可以在多个并发用户之间执行事务处理,以模拟高并发负载下的数据库性能。并发测试是衡量数据库系统处理并发事务的能力的重要指标。 测量性能: 在执行 TPCC-MYSQL 测试后,可以使用 tpcc_start 和 tpcc_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 文件夹中的每个文件的详细信息:

add_fkey_idx.sql: 这个文件可能包含用于添加外键索引的 SQL 语句。外键索引用于维护表之间的关联性,并能加速数据检索和连接。 drop_cons.sql: 这个文件可能包含用于删除外键约束的 SQL 语句。在进行 TPCC 测试之前,可能需要清除外键约束,以便更轻松地加载数据。 schema2: 这是一个文件夹,通常包含与数据库模式(Schema)相关的文件。可能包含创建表、视图、存储过程等的 SQL 语句。 tpcc_load: 这是一个用于加载测试数据的工具或脚本。在进行 TPCC 基准测试之前,需要加载适当的测试数据,以模拟真实的数据库工作负载。 count.sql: 这个文件可能包含一些用于统计数据量或验证数据完整性的 SQL 查询语句。 load.sh: 这是一个 Shell 脚本,可能用于执行数据加载操作的脚本。它可能调用了 tpcc_load 工具,并指定了一些加载的参数。 scripts: 这是一个文件夹,可能包含其他执行 TPCC 测试所需的脚本文件。 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

scp create_table.sql add_fkey_idx.sql root@192.168.2.3:/root

[root@master-mysql ~]# mysql -uroot -p'123456' tpcc

mysql: [Warning] Using a password on the command line interface can be insecure.

[root@master-mysql ~]# mysql -uroot -p'123456' tpcc

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: -

[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”,以及使用的选项和参数。 部分列出了使用的测试参数,包括服务器地址、端口、数据库名称、用户名、密码、仓库数量、并发连接数、热身时间和测试时间。 接下来是测试的执行过程,每行表示一个时间点的测试结果。例如,第一行 “RAMP-UP TIME.(300 sec.)” 表示热身时间为 300 秒,即系统在这段时间内预热。之后,每行显示了一系列的性能指标,例如各个仓库的交易成功率、平均响应时间等。具体的指标含义可能需要查阅 TPCC-MYSQL 的文档或者相关资料。 最后,测试执行完成,可能会显示测试的总体结果或者总结性信息。

根据输出内容,您可以了解到测试的进度和性能指标。如果需要更详细的测试结果,建议查阅生成的日志文件和报告文件,它们通常包含更全面的测试结果和详细的性能指标分析。

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: