sysbench压力测试工具简介和使用(二)

2.1    测试数据库服务器的硬件配置信息如下:

CPU:      24核心线程数,Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz

MEM:    64G,8*8G=64G

DISK:      15000转/秒

2.2    对磁盘IO性能的测试:

2.2.1 创建fileio文件

创建初始化fileio文件:

[[email protected] sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G prepare

sysbench 0.4.12:  multi-threaded system evaluation benchmark

16 files, 131072Kb each, 2048Mb total

Creating files for the test...

2.2.1 开始fileio测试

接下来开始对这些文件进行测试,使用16个线程随机读进行测试结果如下:

[[email protected] sysbench]# sysbench --test=fileio --file-total-size=2G --file-test-mode=rndrd --max-time=180 --max-requests=100000000 --num-threads=16 --init-rng=on --file-num=16 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=16384 run

可以看到随机读取的性能为75.988Mb/sec,随机读的IOPS为4863.25 Requests/sec.说明服务器的硬件配置还不错。

2.2.3 测试完成执行cleanup

测试结束后,记得执行cleanup,以确保测试所产生的文件都已删除:

 

 

 

 

[[email protected] sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G cleanup

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Removing test files...

如果需要测试seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)等6种模式,并且还可能需要测试不同的线程和不同的文件块下磁盘的性能表现,这时,可以使用如下脚本达到测试目的。

测试脚本内容如下:

#!/bin/bash

#==============================================================================

#

#          FILE: sysbench_auto.sh

#

#         USAGE: ./sysbench_auto.sh

#

#   DESCRIPTION: This file is sysbench_auto.sh

#        AUTHOR: Kevin Lu (kevin), [email protected]

#  ORGANIZATION: cmcc

#       CREATED: 02/26/2014 17:35

#      REVISION: v1.0.1

#==============================================================================

for size in {8G,64G}

do

for mode in {seqwr,seqrewr,seqrd,rndrd,rndwr,rndrw}

do

for blksize in {4096,16384}

do

sysbench --test=fileio --file-num=64 --file-total-size=$size prepare

for threads in {1,4,8,16,32}

do

echo "=============testing $blksize in $threads threads"

echo PARAS $size $mode $threads $blksize> sysbench-size-$size-mode-$mode-threads-$threads-blksz-$blksize

for i in {1,2,3}

do

sysbench --test=fileio --file-total-size=$size --file-test-mode=$mode --max-time=180 --max-requests=100000 --num-threads=$threads --

init-rng=on --file-num=64 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=$blksize run|tee -a sysbench-size-$size-mo

de-$mode-threads-$threads-blksz-$blksize 2>&1

done

done

sysbench --test=fileio --file-total-size=$size cleanup

done

done

done

-- 脚本运行后,在当前目录下会生成如下文件:

3.1 对mysql事务型OLTP的测试:

3.1.1 prepare准备阶段

对于mysqlOLTP测试,和file一样,同样需要经历prepare,run,cleanup三个阶段。prepare阶段会在数据库中产生一张指定行数的表,默认表在sbtest架构下,表名为

sbtest(sysbench默认生成表的存储引擎为innodb),如创建一张8000万条记录的表:

[[email protected] sysbench]# sysbench --test=oltp --oltp-table-size=80000000 --db-driver=mysql --mysql-socket=/data/mysqlsoft3307/mysql.sock --mysql-user=dba_manager  --mysql-password=‘111111‘ --mysql-db=test prepare

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Creating table ‘sbtest‘...

Creating 10 records in table ‘sbtest‘...

3.1.2 run运行测试

接下来对上面产生的表进行oltp的测试:

[[email protected] sysbench]# sysbench --test=oltp --oltp-table-size=80000000 --oltp-read-only=off --init-rng=on --num-threads=16 --max-requests=0 --oltp-dist-type=uniform --max-time=3600 --mysql-user=dba_manager  --mysql-password=‘111111‘ --db-driver=mysql --mysql-socket=/data/mysqlsoft3307/mysql.sock run > result.log

参数说明:

--max-time=3600 指定测试时长为1小时

--mysql-db=test 指定测试的数据库名

[[email protected] sysbench]# cat  result.log

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:

Number of threads: 16

Initializing random number generator from timer.

Doing OLTP test.

Running mixed OLTP test

Using Uniform distribution

Using "BEGIN" for starting transactions

Using auto_inc on the id column

Threads started!

Time limit exceeded, exiting...

(last message repeated 15 times)

Done.

OLTP test statistics:

queries performed:

read:                            137346874

write:                           49052449

other:                           19620980

total:                           206020303

 transactions:                        9810489 (2725.13 per sec.)

deadlocks:                           2      (0.00 per sec.)

read/write requests:                 186399323 (51777.50 per sec.)

other operations:                    19620980 (5450.26 per sec.)

Test execution summary:

total time:                          3600.0060s

total number of events:              9810489

total time taken by event execution: 57542.1464

per-request statistics:

min:                                  3.00ms

avg:                                  5.87ms

max:                                212.09ms

approx.  95 percentile:               8.44ms

Threads fairness:

events (avg/stddev):           613155.5625/1486.47

execution time (avg/stddev):   3596.3842/0.01

以上测试结果显示了很多操作的详细信息,transactions代表测试结果的评判标准即TPS,上述测试结果是 2725.13 per sec.

可以对数据库进行调优后,再使用sysbenchOLTP进行测试,看看TPS是不是会有所提高。

注意:sysbench的测试只是基准测试,并不能代表实际企业环境下的性能指标。

http://blog.chinaunix.net/uid-7589639-id-4126046.html

时间: 2024-12-11 06:18:18

sysbench压力测试工具简介和使用(二)的相关文章

sysbench压力测试工具简介

一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.以下操作都将以支持MySQL数据库为例进行. 1.      sysbench工具安装: 默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数. 1.1     

Sysbench压力测试工具简介和使用(一)

sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.以下操作都将以支持MySQL数据库为例进行. 1.      sysbench工具安装: 默认支持<span "="">MySQL,如果需要测试<span "="

压力测试工具tsung用法简介

tsung是用erlang开发的一款简单易用的压力测试工具,可以生成成千上万的用户模拟对服务器进行访问.目前对tsung的理解也仅限于会简单的应用,其内部结构没有深入研究过. 1.安装 tsung是用erlang编写的,所以首先安装erlang的运行环境.然后就是按照tsung的官网下载编译tsung.需要注意的是,生成测试报告需要gnuplot和perl的支持,其中perl需要安装Template扩展.具体安装过程请看相关手册或者google之. 2.配置文件 默认情况下,tsung会加载配置

DNS压力测试工具dnsperf简介

dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试.dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件. dnsperf的地址:https://github.com/cobblau/dnsperf 参数详解 Dnsperf 支持下面的这些命令行参数: -s     用来指定DNS服务器的IP地址,默认值是127.0.0.1-p     用来指定DNS服务器的端口,默认值是53-d     用来指定DNS消息的

三种压力测试工具 http_load 和 apache ab 、 siege 压力测试(转)

在测试站点性能时找到个不错的说明式文章 From:http://blog.csdn.net/lyflower/archive/2010/09/09/5873544.aspx 到http://www.acme.com/software/http_load/ 下载http_load ,安装也很简单直接make;make instlall 就行. http_load 的标准的两个例子是: http_load -parallel 5 -fetches 1000 urls.txt http_load -r

网站压力测试工具webbench使用说明

一.webbench简介 Webbench是有名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发.它的帮助文件和文档请到:www.webbench.com上查看.       Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况.webBech的标准测试可以向我们展示服务器的两项 内容:每秒钟相应请求数和每秒钟传输数据量.webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,J

MySQL压力测试工具使用

一.MySQL自带的压力测试工具--Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较.mysqlslap为mysql性能优化前后提供了直观的验证依据,系统运维和DBA人员应该掌握一些常见的压力测试工具,才能准确的掌握线上数据库支撑的用户流量上限及其抗压性等问题. 1.更改其默认的最大连接数 在对MySQL进行压力测试之前,需要更改其默

Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz 安装#tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar

Web压力测试工具 webbench

在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同.面对这些问题,我们只能尽量去想方设法去模拟.所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数 1.简介 webbench是知名的网站压力测试工具,它是由Lionbridge公司(