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次。
【欢迎关注公众号,更多工具化脚本后续会慢慢整理出来。】





