MySQL压测工具-Sysbench
一、软件简介
SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:
cpu性能,磁盘io性能,调度程序性能,内存分配及传输速度,POSIX线程性能,数据库性能(OLTP基准测试) 。
目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。
二 、Sysbench文件下载
2.1设置yum源
http://mirrors.aliyun.com/repo/Centos-7.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
yum -y install sysbench
2.2验证安装
[root@localhost sysbench-1.0.20]# sysbench --help
[root@localhost sysbench-1.0.20]# sysbench --version
sysbench 1.0.20
四、数据库压测
# 登录mysql
mysql -uroot -proot
# 创建数据库
mysql> create database sbtest;
4.2 准备数据
创建10个并发,10张表,20万条数据,测试120秒,每10秒报告一次
sysbench ./usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.204.21 --mysql-port=3307 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=200000 --threads=10 --time=120 --report-interval=10 prepare
4.3 压测数据
创建10个并发,10张表,20万条数据,测试120秒,每10秒报告一次,日志写到data/test/mysysbench.log
# 创建10个并发,10张表,20万条数据,测试120秒,每10秒报告一次,日志写到home/test/mysysbench.log
sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.204.21 --mysql-port=3307 --mysql-user=root --mysql-password=root --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=200000 --threads=10 --time=120 --report-interval=10 run >> /data/test/mysysbench.log
本此测试为机械硬盘:
TPS:310 per/sec
QPS:6216 per/sec
Latency-95th percentile:前95%的请求的最大响应时间 82.96ms
4.4 清除数据
sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.204.21 --mysql-port=3307 --mysql-user=root --mysql-password=123456 cleanup
五、测试总结
1.尽量不要在MySQL服务器运行的机器上进行测试,一方面可能无法体现网络(哪怕是局域网)的影响,另一方面,sysbench的运行(尤其是设置的并发数较高时)会影响MySQL服务器的表现。
2.可以逐步增加客户端的并发连接数(–thread参数),观察在连接数不同情况下,MySQL服务器的表现;如分别设置为10,20,50,100等。
3.一般执行模式选择complex即可,如果需要特别测试服务器只读性能,或不使用事务时的性能,可以选择simple模式或nontrx模式。
4.如果连续进行多次测试,注意确保之前测试的数据已经被清理干净。
六、参考链接
1.Yum安装MySQL以及相关目录路径和修改目录
2.MySql性能测试工具-sysbench
3.数据库性能测试:sysbench用法详解
4.详解MySQL基准测试和sysbench工具
5.mysql+mycat压力测试一例