1. 什么是压力测试
压力测试是针对系统的一种性能测试,但是测试数据与业务逻辑无关,更加简单直接的测试读写性能
2. 压力测试的指标
QPS:每秒钟处理完请求的次数
TPS:每秒钟处理完的事务次数
响应时间:一次请求所需要的平均处理时间
并发量:系统能同时处理的请求数
3. 压力测试工具
Mysqlslap
Sysbench
Jmeter
长时间高并发的测试应该选择Sysbench
3. 安装Sysbench
设置yum源
下载阿里云或163的yum源,放在/etc/yum.repos.d目录中,
然后再执行如下两条命令
yum clean all
yum makecache
下载Sysbench安装脚本并进行安装
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
yum install -y sysbench
⚠️注意:sysbench不能和MySQL8.0安装到同一个Linux系统上
3. Sysbench基本语法
sysbench script [options] [command]
[option]连接信息参数
参数名称功能意义--mysql-hostip地址
--mysql-port端口号
--mysql-user用户名
--mysql-password密码
[option]执行参数
参数名称功能意义--oltp-test-mode执行模式,包括simple、nontrx和complex,默认是complex
--oltp-tables-count测试的表数量
--oltp-table-size测试的表的大小
--threads客户端的并发连接数
--time测试执行的时间,单位是秒
--report-interval生成报告的时间间隔,单位是秒
[command]命令
命令名称功能意义prepare准备测试数据
run执行测试
cleanup清除测试数据
准备测试数据
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.1.99 --mysql-port=3306 --mysql-user=root --mysql-password=123456abc --oltp-tables-count=10 --oltp-table-size=100000 prepare
--oltp-tables-count=10 表示生成10个用于测试的数据表
--oltp-table-size=100000 每个表里有10万条数据
执行测试
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.1.99 --mysql-port=3306 --mysql-user=root --mysql-password=123456abc --oltp-test-mode=complex --threads=10 --time=600 --report-interval=10 run >> /home/report.log
--time=600 执行时长600秒,10分钟
--report-interval=10 每隔10秒钟生成一次测试报告
/home/report.log 测试报告输出位置