sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL

安装过程(rhel5.8+mysql5.5)

安装过程中不断报错,参考了众多网上资料,一上午时间才搞定
1,    环境准备,安装相关软件包,挂载光驱,配置yum
mount -o loop /data/rhel-server-5.9-x86_64-dvd.iso /mnt/cdrom
配置yum
vi /etc/yum.repos.d/rhel58.repo
[Server]
name=rhel58server
baseurl=file:///mnt/cdrom/Server/
enable=1
gpcheck=1
gpgkey=file:///mnt/cdrom/Server/RPM-GPG-KEY-redhat-release
2,    安装相关软件包,要不可能会报错(注意要安装mysql-devel)
yum install automake
yum install libtool
yum install zlib
yum install gcc
yum install  gcc glibc-devel  glibc-headers  glibc-kernheaders

3,    正式安装
A,解压缩

tar zxvf sysbench-0.4.8.tar.gz
b,修改配置文件
vi configure.ac
# Checks for programs.
AC_PROG_CC
#AC_PROG_LIBTOOL
AC_PROG_RANLIB
AX_CHECK_DOCBOOK
C,分别执行如下命令,
./autogen.sh
./configure  --with-mysql-includes=/usr/include/mysql \
--with-mysql-libs=/usr/lib64/mysql \
LDFLAGS='-ldl'
make
makeinstall

安装中的相关问题

1,copy config.guess and config.sub from /usr/share/libtool to current directory, then ./configure

2,报错:报错client_plugin.c:178: undefined reference to `dlclose' sysbench的问题
./config 命令添加LDFLAGS='-ldl'参数

具体测试方法

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=innodb --mysql-user=root --db-driver=mysql --mysql-db=sbtest  --oltp-table-size=30000000 --oltp-table-name=t2 --oltp-nontrx-mode=insert --mysql-socket=/var/lib/mysql/mysql.sock prepare
sysbench --test=oltp --mysql-table-engine=innodb --mysql-user=root --db-driver=mysql --mysql-db=sbtest  --oltp-table-size=30000000 --oltp-table-name=t1  --mysql-socket=/var/lib/mysql/mysql.sock run


参考资料
http://imysql.cn/node/312