sysbench

SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:
       1、cpu性能
       2、磁盘io性能
       3、调度程序性能
       4、内存分配及传输速度
       5、POSIX线程性能
       6、数据库性能(OLTP基准测试)      
目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。
  • 项目主页: [url]http://sysbench.sourceforge.net/[/url]
  • 文档地址: [url]http://sysbench.sourceforge.net/docs/[/url]
  • 下载地址: [url]http://sourceforge.net/projects/sysbench
  • Sysbench-开源的性能测试工具

    sysbench是一款开源的性能测试工具,可以对多种数据库的性能进行测试,包括用来对MySQL,ORACLE,POSTGRESQL进行性能测试。
    sysbench按照指定的数量开启线程,每个线程与MySQL建立一个连接,每个线程不停地进行事务操作,打开事务,然后进行一些查询、更新、插入操作,提交事务,再开始新的事务;所有的SQL只访问一个表--sbtest,是由sysbench的prepare命令建好的。其中的记录数,也是在prepare时指定好并创建的。测试结束,会有一个统计结果,包括例如每秒事务数、平均响应时间等等;
    以下是sysbench的配置使用方法:
    1,  下载安装包 到网站 http://www.filewatcher.com/_/?q=sysbench 下载安装包比如 : sysbench-0.4.6.tar.gz
    2,  安装MySQL开发支持包(这里假设MySQL已经安装好在/usr/local/mysql目录下)
    下载MySQL devel或者 share 包。(比如:MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm,MySQL-devel-community-5.0.37-0.rhel4.rpm),保证你的 MySQL lib目录下有对应的so 文件。
    3,  解压,编译安装sysbench
    解压到目录sysbench-0.4.6:
    # tar -zxvf sysbench-0.4.6.tar.gz
    配置sysbench:
    #cd sysbench-0.4.6
    命令为:
    [root@localhost sysbench-0.4.6]# ./configure --prefix=/usr/local/sysbench/ --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql
    如果想要让 sysbench 支持 pgsql/oracle 的话,就需要在编译的时候加上参数 --with-pgsql或者--with-oracle。这2个参数默认是关闭的,只有 MySQL 是默认支持的。

    编译安装sysbench:
    #make;make install
    出现错误了:


    仔细看了下,原来是” 保证你的 MySQL lib目录下有对应的 so 文件”
    把MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm包安装上,一切ok啦!
    # rpm -ivh MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm
    现在配置完毕.后续怎样测试.

    一、安装
    首先,在 http://sourceforge.net/projects/sysbench 下载源码包。

    wget http://downloads.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsysbench%2F&ts=1305636705&use_mirror=nchc
    接下来,按照以下步骤安装:
    tar zxf sysbench-0.4.8.tar.gz
    cd sysbench-0.4.8
    ./configure && make && make install
    strip /usr/local/bin/sysbench
    以上方法适用于 MySQL 安装在标准默认目录下的情况,如果 MySQL 并不是安装在标准目录下的话,那么就需要自己指定 MySQL 的路径了。比如我的 MySQL 喜欢自己安装在 /usr/local/mysql 下,则按照以下方法编译:
    /configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make && make install

    Xml代码   收藏代码
    1.  ./configure  --with-mysql-includes=/usr/local/webserver/mysql5.1.57/include --with-mysql-libs=/usr/local/webserver/mysql5.1.57/lib  
    2. make  
    3. make install  


    当然了,用上面的参数编译的话,就要确保你的 MySQL lib目录下有对应的 so 文件,如果没有,可以自己下载 devel 或者 share 包来安装。

    注意,因为本服务器是静态编译安装,无法正常安装,下载了一个noinstall版本的安装的


    Configure代码   收藏代码
    1. 开始前,执行./autogen.sh  
    2.  ./configure   --with-mysql-includes=/mnt/sdb/soft/mysql-5.1.57-linux-x86_64-glibc23/include/ --with-mysql-libs=/mnt/sdb/soft/mysql-5.1.57-linux-x86_64-glibc23/lib/   
    3.   
    4. make  
    5. make install  


    另外,如果想要让 sysbench 支持 pgsql/oracle 的话,就需要在编译的时候加上参数
    --with-pgsql
    或者
    --with-oracle
    这2个参数默认是关闭的,只有 MySQL 是默认支持的。
    二、开始测试
    编译成功之后,就要开始测试各种性能了,测试的方法官网网站上也提到一些,但涉及到 OLTP 测试的部分却不够准确。在这里我大致提一下:
    1、cpu性能测试
    sysbench --test=cpu --cpu-max-prime=20000 run
    cpu测试主要是进行素数的加法运算,在上面的例子中,指定了最大的素数为 20000,自己可以根据机器cpu的性能来适当调整数值。
    2、线程测试
    sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
    3、磁盘IO性能测试
    sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare
    sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run
    sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup
    上述参数指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。
    4、内存测试
    sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run
    上述参数指定了本次测试整个过程是在内存中传输 4G 的数据量,每个 block 大小为 8K。
    5、OLTP测试
    sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test prepare
    上述参数指定了本次测试的表存储引擎类型为 myisam,这里需要注意的是,官方网站上的参数有一处有误,即 --mysql-table-engine,官方网站上写的是 --mysql-table-type,这个应该是没有及时更新导致的。另外,指定了表最大记录数为 1000000,其他参数就很好理解了,主要是指定登录方式。测试 OLTP 时,可以自己先创建数据库 sbtest,或者自己用参数 --mysql-db 来指定其他数据库。--mysql-table-engine 还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。 .


    Sysbench 代码   收藏代码
    1. sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 \--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test --num-threads=4 run  


    Sysbench-install 代码   收藏代码
    1. sysbench – Linux test bench. Easy as pie to test CPU, memory, threads, mysql, and disk performance.  
    2.   
    3. Full description is available here: http://sysbench.sourceforge.net/docs/  
    4.   
    5. install mysql, mysql-devel  
    6. wget http://superb-west.dl.sourceforge.net/sourceforge/sysbench/sysbench-0.4.8.tar.gz  
    7. tar xvzf sysbench*gz  
    8. cd sysbench*  
    9. ./configure && make install  
    10. mysql tests  
    11.   
    12. This will run 10 separate consecutive mysql tests using an InnoDB table type, each with 100 mysql threads, doing a total of 1000 various SQL operations per test. Then it will print the total time they took to finish:  
    13.   
    14. sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \  
    15.   --mysql-host='HOST' --mysql-table-engine=innodb prepare  
    16.    
    17. time perl -e "foreach(1..10){print \`sysbench --max-requests=1000 --test=oltp \  
    18.   --mysql-user=USER --mysql-password=PASS --mysql-db=test --mysql-host='HOST' \  
    19.   --mysql-table-engine=innodb --num-threads=100 run\`}"  
    20.    
    21. sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \  
    22.   --mysql-host='HOST' cleanup  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值