1. 什么是基准测试
基准测试是针对系统的一种压力测试,但基准测试不关心业务逻辑,更加简单、直接、易于测试,不要求数据的真实性和逻辑关系。
1.1 基准测试的指标
QPS:每秒钟处理完请求的次数
TPS:每秒钟执行完的事务次数
响应时间:一次请求所需要的平均处理时间
并发量:系统能同时处理的请求数
2. 安装Sysbench
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
安装完成之后查看版本是否安装成功
sysbench --version
3. Sysbench基本语法
sysbench script [options] [command]
3.1 options参数信息
3.1.1 option连接信息参数
3.1.2 option执行参数
simple: 测试查询 不测试写入
nontrx: 测试无事务的增删改查
complex : 测试有事务的增删改查
3.2 command参数信息
4. 准备测试数据
测试之前新建一个测试逻辑库sbtest
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=192.168.1.27 --mysql-port=3306
--mysql-user=admin --mysql-password=Abc_123456
--oltp-tables-count=10 --oltp-table-size=100000
prepare
/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua : 生成测试数据的脚本sysbench自带
–mysql-host :数据库连接地址
–mysql-port : 端口
–mysql-user:用户名
–mysql-password:密码
–oltp-tables-count:测试10个数据表
–oltp-table-size:每张表10万条数据
prepare:准备测试数据
5. 执行测试
sysbench
/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=192.168.1.27 --mysql-port=3306
--mysql-user=admin --mysql-password=Abc_123456
--oltp-test-mode=complex --threads=10
--time=300 --report-interval=10
run >> /home/mysysbench.log
–oltp-test-mode=complex:测试有事务的增删改查
–threads:并发连接数
–time:测试时长,测试的时长更长一些,比如24小时,测试的结果会更加准确
–report-interval=10 :每个10秒回报一次数据
run >> /home/mysysbench.log:输入测试日志报告文件位置
queries performed : 执行测试的次数
read : 读操作执行了913976次
write : 写操作执行了247884次
other:其他操作执行了131582次
total:总共执行了1293442次
transcations(TPS):执行的事务次数58253次,pxc集群每秒可以执行的事务操作193次
queries(QPS):处理的请求书1293442,pxc集群每秒钟可以执行的增删改查操作
ignored errors: 忽略的错误数量,每秒钟平均错误数量23.41次,可能是节点之间冲突造成
reconnects:数据库重新连接的次数,0代表没有发生数据库连接断开的情况
6. 清理测试数据
sysbench
/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=192.168.1.27 --mysql-port=3306
--mysql-user=admin --mysql-password=Abc_123456
--oltp-tables-count=10
cleanup
7. 总结
基准测试是对单张表进行的读写测试,因为不涉及表连接外键约束,索引等操作,所以单纯体现的是数据库硬件性能。如果想知道数据库集群在真实业务中的实际性能,需要使用压力测试。在下一篇博客中使用tpcc-mysql进行压力测试。