暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

MySQL测试之sysbench

DBATech 2019-08-08
2782


sysbench 压测


日常sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具。可用于CPU、内存、磁盘I/O、线程、数据库的性能测试。sysbench目前支持的数据库压测有pg mysql oracle。以下介绍sysbench对mysql的压测以及个人写的简便压测脚本


sysbench 安装:


curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

sudo yum -y install sysbench


sysbench lua脚本说明

1. bulk_insert.lua  批量写入操作

2. oltp_delete.lua 写入和删除并行操作

3. oltp_insert.lua  纯写入操作

4. oltp_point_select.lua  只读操作,条件为唯一索引列

5. oltp_read_only.lua  只读操作,包含聚合,去重等操作

6. oltp_read_write.lua 读写混合操作,最常用的脚本

7. oltp_update_index.lua 更新操作,通过主键进行更新

8. oltp_update_non_index.lua 更新操作,不通过索引列

9. oltp_write_only.lua 纯写操作,常用脚本,包括insert update delete

10. select_random_points.lua 随机集合只读操作,常用脚本,聚集索引列的selete in操作

11. select_random_ranges.lua 随机范围只读操作,常用脚本,聚集索引列的selete between操作


压测前数据准备:

/usr/bin/sysbench usr/share/sysbench/oltp_read_only.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=xxxxx --mysql-db=sysbench --db-driver=mysql --tables=100 --table-size=100000 --time=1800 --max-requests=1000000 prepare


进行压测:

sysbench usr/share/sysbench/oltp_read_only.lua --mysql-host=127.0.0.1 --mysql-port=3306--mysql-user=root --mysql-password=xxxx  --mysql-db=sysbench --db-driver=mysql --tables=100 --table-size=100000 --report-interval=1 --threads=2 --rand-type=uniform --time=1800 --max-requests=1000000 run >>sysbench.log


压测完毕数据分析:

1 每秒的输出结果:

[ 490s ] thds: 2 tps: 74.00 qps: 1178.01 (r/w/o: 1030.01/0.00/148.00) lat (ms,95%): 56.84 err/s: 0.00 reconn/s: 0.00

[第n秒] 线程:  tps:每秒事务数  qps:每秒操作数  (/r/w/o:read write other即其他操作)  lat 响应时间95%在56.84ms以下  每秒错误个数(可能是冲突,死锁等等) 每秒重连个数.

2 数据结果总体说明:

简便压测脚本:https://github.com/jiasirVan/dbtool/blob/master/bench.py

脚本说明:

1、配置文件sysbench.cnf

[mysql]

ip=127.0.0.1

port=3306

user=root

password=xxx

dbname=sysbench

[sysbench]

#生成的表数量

table_amount=100     

#限制总的执行时间(秒) 0表示不限制 

exectime=1200

#每个表初始化多少行数据

rows=10000000

#请求的最大数目。默认为1000000,0代表不限制

max_request=10000

#每n秒输出一次测试进度报告

interval=1

#指定sysbench的输出日志目录

logdir=/tmp/sysbench

##并发压测的线程数

threadnumber=2,4,8,16,32

#指定用哪个lua脚本测试

lua_script=/usr/share/sysbench/oltp_read_only.lua

【https://github.com/jiasirVan/dbtool/blob/master/sybench.cnf】

2、执行脚本

帮助:./bench.py  --help

执行prepare :./bench.py  -c sysbench.cnf -p

执行run:./bench.py  -c sysbench.cnf -r -t 3

注:-t 执行轮巡多少次测试 默认1次。

【欢迎关注公众号,更多工具化脚本后续会慢慢整理出来。】





最后修改时间:2020-05-14 13:28:57
文章转载自DBATech,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论