好用的数据库压测工具sysbench介绍
江湖乄夜雨
2022年12月04日 15:21

今天介绍1个数据库性能压测的工具:sysbench

参考文章:

https://github.com/akopytov/sysbench

https://www.cnblogs.com/f-ck-need-u/p/9279703.html

https://www.cnblogs.com/sxdear/p/16540266.html

1、主要是压测数据库性能的,实际中一定要注意,如果是线上或测试服正在使用的数据库做压测的时候一定要谨慎!压测的太狠会增加数据库负载、提升CPU使用率,会影响业务!

2、最好是用一个没有业务使用的数据库,比如线上新申请的数据库还没有跑业务,或者干脆临时用一个测试库,性能比实际使用的少几倍,压测完测试的库以后也能预估实际使用的数据库的性能。

3、mac安装:❗️默认版本只支持MySQL,想要支持pgSQL的话加上相关参数即可

brew install sysbench

4、安装完以后先不要着急找命令,配套了很多lua脚本,可以看看里面的脚本:

(1)

which sysbench (/usr/local/bin/) 找到sysbench的命令安装的地方

cd /usr/local/bin/ 有下面的软连接对应的地址:

sysbench -> ../Cellar/sysbench/1.0.20_2/bin/sysbench

然后:cd ../Cellar/sysbench/1.0.20_2 这里是sysbench安装的地址

然后在安装位置:cd share/sysbench

里面有很多lua脚本!❗️还有tests目录下的一个测试脚本~

❗️主要是:oltp_common.lua,很多脚本都是用的里面的方法!

(2)要查看oltp_common.lua的用法,可以:

sysbench /usr/local/Cellar/sysbench/1.0.20_2/share/sysbench/oltp_common.lua help

5、帮助命令:

sysbench --help

(1) 线程数设置为运行机器CPU核数的2倍即可~

6、

(1) 创建测试数据库:create database sbtest;

(2) 准备测试的表:

sysbench --mysql-host=127.0.0.1 \

     --mysql-port=3307 \

     --mysql-user=root \

     --mysql-password=123 \

     /usr/local/Cellar/sysbench/1.0.20_2/share/sysbench/oltp_common.lua \

     --tables=2 \

     --table_size=10000 \

     prepare

然后在数据库sbtest中生成2张表:sbtest1与sbtest2,里面分别有10000条数据~

desc sbtest1;

select count(1) from sbtest1;

select * from sbtest1 limit 3;

(3) 如果想要清除这10个表,可使用cleanup命令。

sysbench --mysql-host=127.0.0.1 \

     --mysql-port=3307 \

     --mysql-user=root \

     --mysql-password=123 \

     /usr/local/Cellar/sysbench/1.0.20_2/share/sysbench/oltp_common.lua \

     --tables=2 \

     cleanup

(4-1) 稍微修改下之前准备数据的语句,就可以拿来测试了。

需要注意的是,之前使用的lua脚本为oltp_common.lua,它是一个通用脚本,是被其它lua脚本调用的,它不能直接拿来测试。

所以,我这里用oltp_read_write.lua脚本来做读、写测试。还有很多其它类型的测试,比如只读测试、只写测试、删除测试、大批量插入测试等等。可找到对应的lua脚本进行调用即可。

sysbench --threads=8 \

     --time=10 \

     --report-interval=5 \

     --mysql-host=127.0.0.1 \

     --mysql-port=3307 \

     --mysql-user=root \

     --mysql-password=123 \

     /usr/local/Cellar/sysbench/1.0.20_2/share/sysbench/oltp_read_write.lua \

     --tables=2 \

     --table_size=10000 \

     run

(4-2)结果:

参考:https://www.cnblogs.com/f-ck-need-u/p/9279703.html

(5)其他性能指标参考网上的说明即可