1 安装
[dave@www.cndba.cn src]# yum install -y gcc mysql-devel
[dave@www.cndba.cn src]# wget https://codeload.github.com/Percona-Lab/tpcc-mysql/zip/refs/heads/master
[dave@www.cndba.cn src]# unzip master
[dave@www.cndba.cn src]# cd tpcc-mysql-master/src
[dave@www.cndba.cn src]# make
注意,make 如果报错:
[dave@www.cndba.cn src]# make
cc -w -O3 -g -I. `mysql_config --include` -c load.c
load.c:19:19: fatal error: mysql.h: No such file or directory
#include <mysql.h>
需要修改Makefile 文件后在编译:
有多个 mysql 的环境下,需要先查找mysql_config
[dave@www.cndba.cn src]# locate mysql_config
/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config
/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config_editor
/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/man/man1/mysql_config.1
/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/man/man1/mysql_config_editor.1
/data/mysql/3309/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config
/data/mysql/3309/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config_editor
/data/mysql/3309/mysql-8.0.38-linux-glibc2.17-x86_64/man/man1/mysql_config.1
/data/mysql/3309/mysql-8.0.38-linux-glibc2.17-x86_64/man/man1/mysql_config_editor.1
/etc/alternatives/mysql_config
修改Makefile:指定具体的mysql_config路径,在编译就没有问题了:
[dave@www.cndba.cn src]# cat Makefile
#
# "make all" to build necessary executables.
#
LIBS= `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --libs_r` -lrt <-- 修改
INC= -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` <-- 修改
#DEFS= -DDEBUG
CFLAGS= -w -O3 -g
TRANSACTIONS= neword.o payment.o ordstat.o delivery.o slev.o
OBJS= main.o spt_proc.o driver.o support.o sequence.o rthist.o sb_percentile.o $(TRANSACTIONS)
.SUFFIXES:
.SUFFIXES: .o .c
.c.o:
$(CC) $(CFLAGS) $(INC) $(DEFS) -c $*.c
all: ../tpcc_load ../tpcc_start
../tpcc_load : load.o support.o
$(CC) load.o support.o $(LIBS) -o ../tpcc_load
../tpcc_start : $(OBJS)
$(CC) $(OBJS) $(LIBS) -o ../tpcc_start
clean :
rm -f *.o
[dave@www.cndba.cn src]#
[dave@www.cndba.cn src]# make
cc load.o support.o `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --libs_r` -lrt -o ../tpcc_load
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c main.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c spt_proc.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c driver.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c sequence.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c rthist.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c sb_percentile.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c neword.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c payment.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c ordstat.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c delivery.c
cc -w -O3 -g -I. `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --include` -c slev.c
cc main.o spt_proc.o driver.o support.o sequence.o rthist.o sb_percentile.o neword.o payment.o ordstat.o delivery.o slev.o `/data/mysql/3308/mysql-8.0.38-linux-glibc2.17-x86_64/bin/mysql_config --libs_r` -lrt -o ../tpcc_start
[dave@www.cndba.cn src]#
2 测试
创建相关表:
mysql> create database tpcc;
mysql> use tpcc;
mysql> source /data/software/tpcc-mysql-master/create_table.sql
mysql> source /data/software/tpcc-mysql-master/add_fkey_idx.sql
加载数据:
[dave@www.cndba.cn tpcc-mysql-master]# pwd
/data/software/tpcc-mysql-master
[dave@www.cndba.cn tpcc-mysql-master]# ./tpcc_load -h 192.168.1.1 -u cndba -p 'cndba' -P 3308 -d tpcc -w 5
*************************************
*** TPCC-mysql Data Loader ***
*************************************
option h with value '192.168.1.1'
option u with value 'cndba'
option p with value 'cndba'
option P with value '3308'
option d with value 'tpcc'
option w with value '5'
<Parameters>
[server]: 192.168.1.1
[port]: 3308
[DBname]: tpcc
[user]: cndba
[pass]: cndba
[warehouse]: 5
TPCC Data Load Started...
Loading Item
相关选项说明:
-h:测试主机
-d:测试的数据库
-u:测试的用户
-p:测试用户的密码
-w:测试的warehouse数
-c:测试的连接线程数
-r:预热时间,warmup_time,以秒为单位,默认是10秒,目的是为了将数据加载到内存
-l:测试时间,默认为20秒
-i:report_interval指定生成报告的间隔时间
-f:report_file将测试中各项操作的记录输出到指定文件内保存
-t:trx_file输出更详细的操作信息到指定文件内保存
开始测试:
[dave@www.cndba.cn tpcc-mysql-master]# ./tpcc_start -h 192.168.1.1 -u cndba -p 'cndba' -P 3308 -d tpcc -w 5 -c 10 -r 10 -l 20 -f /tmp/tpcc_mysql.log -t /tmp/tpcc_mysql.rtx
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.1.1'
option u with value 'cndba'
option p with value 'cndba'
option P with value '3308'
option d with value 'tpcc'
option w with value '5'
option c with value '10'
option r with value '10'
option l with value '20'
option f with value '/tmp/tpcc_mysql.log'
option t with value '/tmp/tpcc_mysql.rtx'
<Parameters>
[server]: 192.168.1.1
[port]: 3308
[DBname]: tpcc
[user]: cndba
[pass]: cndba
[warehouse]: 5
[connection]: 10
[rampup]: 10 (sec.)
[measure]: 20 (sec.)
RAMP-UP TIME.(10 sec.)
MEASURING START.
10, trx: 4203, 95%: 18.136, 99%: 24.953, max_rt: 41.666, 4204|36.503, 420|9.378, 419|69.147, 420|47.795
20, trx: 4210, 95%: 17.760, 99%: 23.616, max_rt: 112.853, 4207|101.769, 421|4.391, 421|134.613, 421|49.489
STOPPING THREADS..........
<Raw Results>
[0] sc:0 lt:8416 rt:0 fl:0 avg_rt: 17.8 (5)
[1] sc:6288 lt:2124 rt:0 fl:0 avg_rt: 7.1 (5)
[2] sc:841 lt:0 rt:0 fl:0 avg_rt: 1.6 (5)
[3] sc:837 lt:3 rt:0 fl:0 avg_rt: 55.7 (80)
[4] sc:0 lt:841 rt:0 fl:0 avg_rt: 49.2 (20)
in 20 sec.
<Raw Results2(sum ver.)>
[0] sc:0 lt:8416 rt:0 fl:0
[1] sc:6289 lt:2124 rt:0 fl:0
[2] sc:841 lt:0 rt:0 fl:0
[3] sc:837 lt:3 rt:0 fl:0
[4] sc:0 lt:841 rt:0 fl:0
<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.47% (>=43.0%) [OK]
Order-Status: 4.35% (>= 4.0%) [OK]
Delivery: 4.34% (>= 4.0%) [OK]
Stock-Level: 4.35% (>= 4.0%) [OK]
[response time (at least 90% passed)]
New-Order: 0.00% [NG] *
Payment: 74.75% [NG] *
Order-Status: 100.00% [OK]
Delivery: 99.64% [OK]
Stock-Level: 0.00% [NG] *
<TpmC>
25248.000 TpmC
[dave@www.cndba.cn tpcc-mysql-master]#
版权声明:本文为博主原创文章,未经博主允许不得转载。