sysbench数据库性能测试
这里主要记录一下sysbench的初步使用过程,欢迎各位大佬补充。
目标:测试mysql5.7的数据库性能
工具:sysbench
工具安装:最新版Ubuntu系统安装:
1.git clone https://github.com/akopytov/sysbench.git
2.cd sysbench
3. ./autogen,sh
4. ./configure
5. make
6. make install
安装过程中可能出现一些问题,一般都是缺少依赖包,可以针对不同问题搜索解决方法。目前安装的最新版本为sysbench 1.1.0-651e7fd。
使用:目前仅使用数据库测试的部分,之前查了很多资料,大家使用的是不同版本的sysbench,所以命令基本不同,不同版本的命令参数也很难兼容,所以现在只说一下最新版本sysbench命令的使用。最新版本中sysbench会提供一些lua脚本供测试使用,默认安装的文件路径为/usr/local/share/sysbench/。
1. sysbench测试数据库会先准备数据(prepare),准备数据时会按照指定的表数目还有表大小向测试数据库插入数据
eg. sysbench --test=/usr/local/share/sysbench/oltp_read_only.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test --tables=2 --table-size=5000000 --report-interval=3 --threads=100 --time=300 --max-requests=0 prepare
上条命令主要含义是连接本地数据库,准备两张表,每张表的大小为500万
2. 运行数据(run)
eg. sysbench --test=/usr/local/share/sysbench/oltp_read_only.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test --tables=2 --table-size=5000000 --report-interval=3 --threads=100 --time=300 --max-requests=0 run
--report-interval=3的含义为每3秒出一次结果,--time=300该参数表示一共测试时间为300s,报告的结果如下:
报告解释:
queries perfomed:
read --只读数目
write --只写数目
other --其他操作例如submit等等
transactions( per sec . ) --事务数(tps)
queries( per sec . ) --查询数(qps)
下面部分为响应时间(min 最小 avg平均 max最大 95th )
我们最常关注的数据库指标为tps、qps、响应时间等
3. 最后(cleanup)
测试完成后要对测试数据进行清理,命令如下:
eg. sysbench --test=/usr/local/share/sysbench/oltp_read_only.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test --tables=2 --table-size=5000000 --report-interval=3 --threads=100 --time=300 --max-requests=0 cleanup