SysBench - 一种系统性能Benchmark
SysBench是一款开源的、跨平台的、模块化的、多线程的性能测试工具,通过高负载地运行在数据库上,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。用于评估操作系统的性能参数。
相关阅读:
1 sysbench简介
Sysbench使得我们无需采用真正的复杂的数据库benchmark而获取系统的性能概况。
目前主要支持的数据库有mysql、Oracle、postgresql。
可评估的系统性能参数有:
1. Cpu性能
2. 内存分配与传输速度测试
3. 互斥体测试
4. 文件I/O性能
5. 线程调度性能
6. 数据库服务性能(OLTP基准)
本来sysbench主要是为mysql编写的benchmark。但是现在SysBench将进一步扩展,以支持更多的数据库backends,distributed benchmarks和第三方插件模块。
sysbench按照指定的数量开启线程,每个线程与mysql建立一个连接,每个线程不停地进行事务操作,打开事务,然后进行一些查询、更新、插入操作,提交事务,再开始新的事务;所有的sql只访问一个表-sbtest,是由sysbench的prepare命令建好的。其中的记录数,也是在prepare时指定好并创建的。测试结束,会有一个统计结果,包括例如每秒事务数、平均响应时间等等;
2 sysbench下载与安装
1.下载
下载地址:http://sourceforge.net/projects/sysbench/
获得sysbench-0.4.8.tar.gz源码。sysbench-0.4.8.tar.gz编译未通过。
2.安装
默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数
[root@RedHat sysbench-0.4.8]# ./configure --without-mysql
[root@RedHat sysbench-0.4.8]# make
[root@RedHat sysbench-0.4.8]# make install
如果需要测试mysql,则需要配置参数选项:
./configure
--with-mysql-includes=/opt/mysql/include/mysql 表示mysql头文件目录
--with-mysql-libs=/opt/mysql/lib/mysql表示mysql模块目录
如股票缺少libtool请至ftp://ftp.gnu.org/gnu/libtool/下载
3 性能测试与结果分析
请查看sysbench帮助
[root@RedHat sysbench-0.4.8]# sysbench
Missing required command argument.
Usage:
sysbench [general-options]... --test=<test-name> [test-options]... command
General options:
--num-threads=N number of threads to use [1]
--max-requests=N limit for total number of requests [10000]
--max-time=N limit for total execution time in seconds [0]
--thread-stack-size=SIZE size of stack per thread [32K]
--init-rng=[on|off] initialize random number generator [off]
--test=STRING test to run
--debug=[on|off] print more debugging info [off]
--validate=[on|off] perform validation checks where possible [off]
--help=[on|off] print help and exit
Compiled-in tests:
fileio - File I/O test
cpu - CPU performance test
memory - Memory functions speed test
threads - Threads subsystem performance test
mutex - Mutex performance test
oltp - OLTP test
Commands: prepare run cleanup help
See 'sysbench --test=<name> help' for a list of options for each test.
[root@RedHat sysbench-0.4.8]#
其中通用参数
参数名 | 参数描述 |
--num-threads=N | 测试时使用的线程数,默认为1 |
--max-requests=N | 请求数最大现在,默认10000 |
-max-time=N | 执行时间最大限制,默认为0 |
--thread-stack-size=SIZE | 每个线程的stack大小,默认是32K |
--init-rng=[on|off] | 是否初始化随机数生成器 |
--test=STRING | 运行的测试 |
--debug=[on|off] | 是否打印更多的debug信息 |
--validate=[on|off] | 是否执行有效性检查 |
--help=[on|off] | 打印帮助并退出 |
其中--test=STRING中的STRING可选项有:
STRING | 描述 |
fileio | 文件IO测试 |
cpu | CPU性能测试 |
memory | 内存分配与传输速度测试 |
threads | 线程子系统性能测试 |
mutex | 互斥体性能测试 |
oltp | 数据库OLTP测试 |