基准测试
先说下,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_rcollect2: ld returned 1 exit statusmake[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 directorySolution: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 |


浙公网安备 33010602011771号