SysBench - 一种系统性能Benchmark

windsha 2013-07-28

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测试

相关推荐