基准测试

 先说下,mysql进行基准测试的工具及安装、基本使用。

     mysql的基准测试工具有很多,如mysqlslap、sysbench、Super Smack等;我们使用sysbench进行测试之旅。

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

    1、安装sysbench

         下载sysbench(0.4.12):地址:http://sourceforge.net/projects/sysbench/ 

1
2
3
4
5
6
7
8
9
10
# 安装
>>> tar -zxvf sysbench-0.4.12.tar.gz
>>> cd sysbench-0.4.12
>>> ./autogen.sh
>>> vim aclocal.m4
    LIBTOOL='$(SHELL) 自己的libool的路径'   # 修改成  /usr/bin/libtool
    AC_SUBST(LIBTOOL)dnl
>>> ./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib
>>> make
>>> make install

 

    可能遇到的错误:

   a、cannot find -lmysqlclient_r

1
2
3
/usr/bin/ld: cannot find -lmysqlclient_r
collect2: ld returned 1 exit status
make[2]: *** [sysbench] Error 1

 

   解决办法: find / -name *mysqlclient_r*

                    ln -s /usr/local/mysql/lib/libmysqlclient_r.so /usr/lib/libmysqlclient.so

   b、别人遇到的问题,在这里记录一下

1
2
3
4
5
6
./sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Solution:
export LD_LIBRARY_PATH=/usr/local/mysql/lib
或者添加到/etc/profile里.
 ./configure --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/
make && make install

 

  2、进行测试

    a、基本语法

    cpu性能测试

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

 

    结果:

    

    线程测试

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

 

   结果:

   

  文件io

1
2
3
>>> 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

 

  内存测试

1
>>> sysbench --test=memory --memory-block-size=8k --memory-total-size=1G

 

  oltp测试

1
2
3
>>> sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test --mysql-db=test prepare
>>> sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test --mysql-db=test run
>>> sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test --mysql-db=test cleanup

 

posted on 2016-03-01 17:12  阿卡贝拉  阅读(139)  评论(0)    收藏  举报