tpcc mysql 官网_tpcc-mysql压测Mysql

背景

新库新主机上线基准测试

写在前面

做以下操作之前,请自行优化系统OS参数和mysql参数,也可以复制一份线上的文件对比更改下

写本文的原因

sysbench 工具使用者比较广泛,偶然在网上看到tpcc-mysql+gnuplot生成测试图片的文章,所以进行了以下测试。 需要注意的是新的版本生成的数据和文章的数据不一样。我在文末附上文章链接,本文没有进行图片的生成工作。 请读者进行区分。

1.安装工具

unzip tpcc-mysql-master.zip

cd tpcc-mysql-master/src

make

安装完成之后,根据自己的环境更改以下语句进行基测

准备工作:

1.# 创建测试用的数据库

create database tpcc

2.# 创建测试用的表 9张

/usr/local/sandboxes/mysql_base/5.7.26/bin/mysql -hlocalhost -port17261 --socket=/tmp/mysql_sandbox17261.sock -umsandbox -p tpcc

3.#创建FK和索引

/usr/local/sandboxes/mysql_base/5.7.26/bin/mysql -hlocalhost -port17261 --socket=/tmp/mysql_sandbox17261.sock -umsandbox -p tpcc

./tpcc_load --help

Usage: tpcc_load -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -l part -m min_wh -n max_wh

* [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS

4.创建五个数据仓库:

./tpcc_load -h localhost -P 17261 -d tpcc -u msandbox -p123456 -w 5

5.进行压测:

./tpcc_start --help

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

# ./tpcc_start -h localhost -d tpcc -u msandbox -p "123456" -w 5 -c 5 -r 120 -l 5 - >test0118/tpcc-output-log

-w 5 使用仓库数

-c 5 使用5个线程

-r 120 使用预热120s

-l 300 运行基准测试的时间300s

下载地址https://github.com/Percona-Lab/tpcc-mysql

link

注意:

tpcc 默认会读取/var/lib/mysql/mysql.sock 这个socket位置,如果你的测试环境的mysql socket不在相应路径的话,就需要做个软连接,或者通过TCP/IP的方式连接测试服务器。

ln -s /tmp/mysql_sandbox17261.sock /tmp/mysql.sock

官方对输出的解读

输出量

使用定义的间隔(-i选项),该工具将产生以下输出:

10, trx: 12920, 95%: 9.483, 99%: 18.738, max_rt: 213.169, 12919|98.778, 1292|101.096, 1293|443.955, 1293|670.842

20, trx: 12666, 95%: 7.074, 99%: 15.578, max_rt: 53.733, 12668|50.420, 1267|35.846, 1266|58.292, 1267|37.421

30, trx: 13269, 95%: 6.806, 99%: 13.126, max_rt: 41.425, 13267|27.968, 1327|32.242, 1327|40.529, 1327|29.580

40, trx: 12721, 95%: 7.265, 99%: 15.223, max_rt: 60.368, 12721|42.837, 1271|34.567, 1272|64.284, 1272|22.947

50, trx: 12573, 95%: 7.185, 99%: 14.624, max_rt: 48.607, 12573|45.345, 1258|41.104, 1258|54.022, 1257|26.626

哪里:

10-基准测试开始后的秒数

trx:12920-在给定间隔内执行新订单交易(在这种情况下,为前10秒)。基本上,这是每个时间间隔的吞吐量。越多越好

95%:9.483:-每个给定间隔的新订单交易的95%响应时间。在这种情况下是9.483秒

99%:18.738:-每个给定间隔的新订单交易的99%响应时间。在这种情况下为18.738秒

max_rt:213.169:-每个给定间隔的新订单交易的最大响应时间。在这种情况下为213.169秒

其余:12919|98.778, 1292|101.096, 1293|443.955, 1293|670.842是其他类型事务的吞吐量和最大响应时间,可以忽略

来自知数堂的叶老师的建议

真实测试场景中,仓库数一般不建议少于100个,视服务器硬件配置而定,如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,建议最少不低于1000个。

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

a、填充测试数据比物理内存还要大,至少超过 innodb_buffer_pool_size 值,不能将数据全部装载到内存中,除非你的本意就想测试全内存状态下的MySQL性能。

b、每轮测试完成后,都重启mysqld实例,并且用下面的方法删除系统cache,释放swap(如果用到了swap的话),甚至可以重启整个OS。

sync – 将脏数据刷新到磁盘

echo 3 > /proc/sys/vm/drop_cache – 清除OS Cache

swapoff -a && swapon -a

link

参考文章

link

格式不同之处:

3ca473801be666d830e0bf6b5ccaf590.png

勉强能看的内容:

668ba4bfa72fff844ac8d4bb7379a301.png

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值