安装sysbench

一、安装

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

wgethttp://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

接下来,按照以下步骤安装:

tarzxfsysbench-0.4.8.tar.gz

cdsysbench-0.4.8

./configure&&make&&makeinstall

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&&makeinstall

./configure  --with-mysql-includes=/usr/local/webserver/mysql5.1.57/include --with-mysql-libs=/usr/local/webserver/mysql5.1.57/lib
make
make install

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

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

开始前,执行./autogen.sh
 ./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/ 

make
make install

另外,如果想要让sysbench支持pgsql/oracle的话,就需要在编译的时候加上参数

--with-pgsql

或者

--with-oracle

这2个参数默认是关闭的,只有MySQL是默认支持的。

二、开始测试

编译成功之后,就要开始测试各种性能了,测试的方法官网网站上也提到一些,但涉及到OLTP测试的部分却不够准确。在这里我大致提一下:

1、cpu性能测试

sysbench--test=cpu--cpu-max-prime=20000run

cpu测试主要是进行素数的加法运算,在上面的例子中,指定了最大的素数为20000,自己可以根据机器cpu的性能来适当调整数值。

2、线程测试

sysbench--test=threads--num-threads=64--thread-yields=100--thread-locks=2run

3、磁盘IO性能测试

sysbench--test=fileio--num-threads=16--file-total-size=3G--file-test-mode=rndrwprepare

sysbench--test=fileio--num-threads=16--file-total-size=3G--file-test-mode=rndrwrun

sysbench--test=fileio--num-threads=16--file-total-size=3G--file-test-mode=rndrwcleanup

上述参数指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。

4、内存测试

sysbench--test=memory--memory-block-size=8k--memory-total-size=4Grun

上述参数指定了本次测试整个过程是在内存中传输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=testprepare

上述参数指定了本次测试的表存储引擎类型为myisam,这里需要注意的是,官方网站上的参数有一处有误,即--mysql-table-engine,官方网站上写的是--mysql-table-type,这个应该是没有及时更新导致的。另外,指定了表最大记录数为1000000,其他参数就很好理解了,主要是指定登录方式。测试OLTP时,可以自己先创建数据库sbtest,或者自己用参数--mysql-db来指定其他数据库。--mysql-table-engine还可以指定为innodb等MySQL支持的表存储引擎类型。.

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 – Linux test bench. Easy as pie to test CPU, memory, threads, mysql, and disk performance.

Full description is available here: http://sysbench.sourceforge.net/docs/

install mysql, mysql-devel
wget http://superb-west.dl.sourceforge.net/sourceforge/sysbench/sysbench-0.4.8.tar.gz
tar xvzf sysbench*gz
cd sysbench*
./configure && make install
mysql tests

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:

sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \
  --mysql-host='HOST' --mysql-table-engine=innodb prepare
 
time perl -e "foreach(1..10){print \`sysbench --max-requests=1000 --test=oltp \
  --mysql-user=USER --mysql-password=PASS --mysql-db=test --mysql-host='HOST' \
  --mysql-table-engine=innodb --num-threads=100 run\`}"
 
sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \
  --mysql-host='HOST' cleanup

相关推荐