sysbench压测mysql性能测试命令和报告

一、安装sysbench工具

  1. 下载sysbench工具
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
  1. 安装sysbench工具
sudo yum -y install sysbench
  1. 查看安装后的版本号
sysbench --version

在这里插入图片描述

二、创建测试数据库

登到mysql后台,创建sysbench数据库

create database tssysbench;

在这里插入图片描述

注意:如果没tssysbench数据库,执行后续sysbench命令时会报下面的错误。
在这里插入图片描述

三、基于sysbench构造测试表和测试数据

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=10 \
--threads=128 --time=300 \
prepare

命令行中的参数说明:

​ --db-driver=mysql:代表数据库驱动
​ --time=300:这个就是说连续访问300秒
​ --threads=128:这个就是说用128个线程模拟并发访问
​ --report-interval=10:这个就是说每隔10秒输出一下压测情况
​ --mysql-host=172.16.111.109 --mysql-port=13306 --mysql-user=root --mysql-password=123456:数据库的用户和密码等信息
​ --mysql-db=tssysbench --tables=20 --table_size=1000000:这一串的意思,就是说在tssysbench这个库里,构造20个测试表,每个测试表里构造100万条测试数据,测试表的名字会是类似于sbtest1,sbtest2这个样子的
​/usr/share/sysbench/oltp_read_write:这个就是说,执行oltp数据库的读写测试
​最后有一个prepare,意思是参照这个命令的设置去构造出来我们需要的数据库里的数据,他会自动创建20个测试表,每个表里创建100万条测试数据,所以这个工具是非常的方便的。

​ 下面是执行过程中的输出信息:
在这里插入图片描述

​ 查询表中的数据,发现表里面有100w条数据:
在这里插入图片描述

四、数据库性能测试

1、数据库读写性能测试

​数据库读写性能测试,将执行指令最后的prepare修改成run:

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=10 \
--threads=64 --time=30 \
run

​下面是截取的执行10秒,20秒,30秒的数据。

[ 10s ] thds: 64 tps: 1184.53 qps: 23779.02 (r/w/o: 16660.13/4743.43/2375.46) lat (ms,95%): 97.55 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 64 tps: 860.68 qps: 17213.78 (r/w/o: 12045.88/3446.54/1721.37) lat (ms,95%): 161.51 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 64 tps: 692.06 qps: 13844.57 (r/w/o: 9691.79/2768.65/1384.13) lat (ms,95%): 267.41 err/s: 0.00 reconn/s: 0.00

对表中的数据进行说明,以第一条数据做解释描述:

thds: 64,这个意思就是有10个线程在压测
tps: 1184.53,这个意思就是每秒执行了1184.53个事务
qps: 23779.02,这个意思就是每秒可以执行23779.02个请求(r/w/o: 16660.13/4743.43/2375.46),这个意思就是说,在每秒23779.02个请求中,有16660.13个请求是读请求,4743.43个请求是写请求,2375.46个请求是其他的请求,就是对QPS进行了拆解
lat (ms, 95%): 97.55,这个意思就是说,95%的请求的延迟都在 97.55毫秒以下
err/s: 0.00 reconn/s: 0.00,这两个的意思就是说,每秒有0个请求是失败的,发生了0次网络重连

下面是执行完成后控制台输出的数据:
在这里插入图片描述

2、数据库读性能测试

sysbench /usr/share/sysbench/oltp_read_only.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

3、数据库删除性能测试

sysbench /usr/share/sysbench/oltp_delete.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

4、数据库更新索引字段性能测

sysbench /usr/share/sysbench/oltp_update_index.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

5、数据库更新非索引字段性能测试

sysbench /usr/share/sysbench/oltp_update_non_index.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

6、数据库插入数据性能测试

sysbench /usr/share/sysbench/oltp_insert.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

7、数据库写性能测试

sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

8、执行完成压测之后可以将run改成cleanup,清除数据

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
cleanup

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高晓伟_Steven

相逢即是有缘,动力源于金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值