Chinaunix首页 | 论坛 | 博客
  • 博客访问: 693962
  • 博文数量: 176
  • 博客积分: 4791
  • 博客等级: 上校
  • 技术积分: 1921
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:47
个人简介

it江湖漂,怎能不挨刀;一朝机器当,看你怎么着!

文章分类

全部博文(176)

文章存档

2014年(2)

2012年(17)

2011年(27)

2010年(18)

2009年(6)

2008年(21)

2007年(43)

2006年(42)

分类: LINUX

2008-04-28 14:27:48

Sysbench-开源的性能测试工具
sysbench是一款开源的性能测试工具,可以对多种数据库的性能进行测试,包括用来对MySQL,ORACLE,POSTGRESQL进行性能测试。
sysbench按照指定的数量开启线程,每个线程与MySQL建立一个连接,每个线程不停地进行事务操作,打开事务,然后进行一些查询、更新、插入操作,提交事务,再开始新的事务;所有的SQL只访问一个表--sbtest,是由sysbench的prepare命令建好的。其中的记录数,也是在prepare时指定好并创建的。测试结束,会有一个统计结果,包括例如每秒事务数、平均响应时间等等;

以下是sysbench的配置使用方法:
1, 下载安装包 到网站 下载安装包比如 : 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
 

现在配置完毕.后续怎样测试.

二、开始测试
编译成功之后,就要开始测试各种性能了,测试的方法官网网站上也提到一些,但涉及到 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 支持的表存储引擎类型。

 
阅读(1138) | 评论(0) | 转发(0) |
0

上一篇:MySql的时间函数

下一篇:mysql 时间的表示

给主人留下些什么吧!~~