vivenwan 2020-05-10
一、介绍
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。本身支持mysql数据库的压测。
是业内最常用的数据库多线程基准测试工具,官方 1.0 版本发布以后,能够基于 lua 脚本进行定制测试,十分方便。
二、安装
yum安装:yum install sysbench
三、参数说明
sysbench 安装完成后,可以查看 sysbench 安装的版本:
通过help查看参数:
[ ~]# sysbench --help
sysbench 使用语法如下:
sysbench [options]... [testname] [command]
其中:
options 为参数选项
testname 指定基准测试 oltp*.lua 脚本
command 是要执行什么样的操作
下面对这三部分分别进行说明
1. command 命令
sysbench 的 command 是控制命令,包含以下几个选项:
prepare, prewarm, run, cleanup, help
其中:
prepare 表示测试前准备,主要创建表,生成初始测试数据
prewarm 表示测试前进行预热
run 表示执行测试,根据各种测试场景进行测试
cleanup 表示测试完后清理测试数据
help 获取帮助文档
2. testname 测试选项
sysbench 的 testname 是表示要测试的场景,目前 sysbench 自带的针对 mysql
oltp 测试场景有如下几种:
3. options 选项
sysbench 的 options 里面包含测试需要的各种参数,包括初始化、预热、运行以及不同测试场景中需要的参数,具体如下:
1) 通用选项
选项 描述 默认值
2) 伪随机数发生器
选项 描述 默认值
3) 日志选项
日志选项
选项 描述 默认值
4) 数据库选项
通用数据库选项
选项 描述 默认值
--db-driver=STRING
指定数据库驱动,默认安装支持:
mysql - MySQL driver
pgsql - PostgreSQL driver
--db-ps-mode=STRING prepare 语句使用(auto、disable) 默认为auto
--db-debug[=on|off] 是否打印数据库特有的调试信息 默认为off
mysql 选项
选项 描述 默认值
oltp 选项
选项 描述 默认值
四、数据准备
需要先创建数据库,testdb
sysbench --test=/usr/share/sysbench/oltp_insert.lua --mysql-host=127.0.0.1--mysql-port=3306 --mysql-user=root --mysql-password=‘12345678‘ --mysql-db=testdb --db-driver=mysql --tables=10 --table-size=500000 --report-interval=10 --threads=128 prepare
创建十个表,一个表500000数据
五、测试
示例:测试主键查询,5个线程,压测200s,10s打一次报告
sysbench --test=/usr/share/sysbench/oltp_point_select.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root--mysql-password=‘12345678‘ --mysql-db=testdb --db-driver=mysql --table-size=500000--report-interval=10 --threads=5--time=200run
六、测试报告
测试结果:
统计报告参数说明:
SQL statistics:
queries performed:
read: //总 select 数
write: //总 dml 数
other: //begin,commit,lock tables 以及 mutex 数
total: //总查询量
transactions: //TPS
queries: //QPS
ignored errors: //忽略错误数
reconnects: 0 (0.00 per sec.)
General statistics:
total time: --time 指定的压测时间
total number of events: //总的请求次数
Latency (ms):
min: //最小响应时间
avg: //平均响应时间
max: //最大响应时间
99th percentile: //99%的语句相应时间
sum: //总查询时间
七、清空测试数据和表
sysbench --test=/usr/share/sysbench/oltp_insert.lua --mysql-host=127.0.0.1--mysql-port=3306 --mysql-user=root --mysql-password=‘12345678‘ --mysql-db=testdb --db-driver=mysql --tables=10 --table-size=500000 --report-interval=10 --threads=128 cleanup