0.前言
Sysbench的作者于2016年将十年未变的sysbench升级至1.0版本,较老版本有了非常大的改变。在使用过程中由于官方文档不太完善,遂有此文。
1.新特性
官方文档中的升级说明:
-
更好的性能和扩展性,比0.4版本快了3.44倍,比0.5版本快了6.44倍。
-
改良了命令行语法
-
扩展了SQL API,例如每个线程可以有多个连接。
-
latency直方图功能
-
错误hooks
-
报告hooks
-
自定义和并行性命令
-
多种report类型,如JSON,CSV,SQL等
最大的升级应该还是OLTP测试中的lua脚本。
2.安装
官方文档中已列出各种安装方法,这里推荐一个更快速的,使用percona的源:
-
root# yum install
-
root# yum install sysbench
安装完成之后可以在/usr/share/sysbench/中找到需要使用的lua脚本。
如果需要使用sysbench Test Suite,需要安装依赖包Cram:
也可以编译安装:
-
root# wget
-
root# tar zxvf cram-0.6.tar.gz
-
root# cd cram-0.6
-
root# make install
3.使用方法
sysbench --help中已经有了很详细的说明,参考此文件可以得到大部分信息。
命令语法:sysbench [options]... [testname] [command]
options: 有普通选项和伪随机选项两类,大部分参数都不需要额外配置,使用默认即可。
log: 打开latency的直方图输出。
database: 默认即可
mysql: 填入需要压测的mysql的账号密码,请参阅下面的样例。
testname: 内建有fileio、CPU、memory、threads、mutex这几个测试,mysql相关测试请直接调用相关脚本。
command:有prepare、run、cleanup、help这4个,请参阅下面的样例。
另外,每个测试的lua脚本也有一个help提示,命令如下:
-
root# sysbench oltp_read_write.lua help
-
sysbench 1.0.8 (using bundled LuaJIT 2.1.0-beta2)
oltp_read_write.lua options:
--distinct_ranges=N Number of SELECT DISTINCT queries per transaction [1]
--sum_ranges=N Number of SELECT SUM() queries per transaction [1]
--skip_trx[=on|off] Don't start explicit transactions and execute all queries in the AUTOCOMMIT mode [off]
--secondary[=on|off] Use a secondary index in place of the PRIMARY KEY [off]
--create_secondary[=on|off] Create a secondary index in addition to the PRIMARY KEY [on]
--index_updates=N Number of UPDATE index queries per transaction [1]
--range_size=N Range size for range SELECT queries [100]
--auto_inc[=on|off] Use AUTO_INCREMENT column as Primary Key (for MySQL), or its alternatives in other DBMS. When disabled, use client-generated IDs [on]
--delete_inserts=N Number of DELETE/INSERT combination per transaction [1]
--tables=N Number of tables [1]
--mysql_storage_engine=STRING Storage engine, if MySQL is used [innodb]
--non_index_updates=N Number of UPDATE non-index queries per transaction [1]
--table_size=N Number of rows per table [10000]
--pgsql_variant=STRING Use this PostgreSQL variant when running with the PostgreSQL driver. The only currently supported variant is 'redshift'. When enabled, create_secondary is automatically disabled, and delete_inserts is set to 0
--simple_ranges=N Number of simple range SELECT queries per transaction [1]
--order_ranges=N Number of SELECT ORDER BY queries per transaction [1]
--range_selects[=on|off] Enable/disable all range SELECT queries [on]
--point_selects=N Number of point SELECT queries per transaction [10]
4.示例
-
root# /usr/bin/sysbench --threads=64 --time=600 --histogram=on --mysql_host=10.65.200.43 --mysql-port=6606 --mysql-user=sysbench --mysql-password=sysbench /usr/share/sysbench/oltp_read_write.lua --table_size=10000000 prepare #建表,造数据
-
root# /usr/bin/sysbench --threads=64 --time=600 --histogram=on --mysql_host=10.65.200.43 --mysql-port=6606 --mysql-user=sysbench --mysql-password=sysbench /usr/share/sysbench/oltp_read_write.lua --table_size=10000000 run #运行压测程序
-
root# /usr/bin/sysbench --threads=64 --time=600 --histogram=on --mysql_host=10.65.200.43 --mysql-port=6606 --mysql-user=sysbench --mysql-password=sysbench /usr/share/sysbench/oltp_read_write.lua --table_size=10000000 cleanup #执行清理工作
关键参数说明:
--threads=64 测试时使用的线程数
--time=600 测试时间
--histogram=on 在报告中是否输出关于延迟的直方图,建议开启
--table_size=10000000 数据表的大小
现在可以愉快的进行测试了。
参考资料:
1.
2.
3.
阅读(1606) | 评论(0) | 转发(0) |