用sysbench测试数据库吞吐量指标

1.  在Github上下载最新版本的SysBench,

# wget -O sysbench-1.0.14.tar.gz https://github.com/akopytov/sysbench/archive/1.0.14.tar.gz,文件下载为sysbench-1.0.14.tar.gz

2. tar -vzxf sysbench-0.4.12.14.tar.gz 解压缩,生成新目录sysbench-1.0.14

3. 进入该目录,安装depnedency,

yum -y install make automake libtool pkgconfiglibaio-devel成功

yum -y install mariadb-devel 成功

 

4. 运行 ./autogen.sh,提示

  configure.ac:49: error: possibly undefinedmacro: AC_LIB_PREFIX

      If this token and others are legitimate,please use m4_pattern_allow.

      See the Autoconf documentation.

 

5. 安装gettext,提示已经安装,安装gettext-devel,

yum install gettext-devel

 

成功

 

6. 再次运行./autogen.sh,成功

Libtoolized with: libtoolize (GNUlibtool) 2.4.2

Automade with: automake (GNU automake)1.13.4

Configured with: autoconf (GNU Autoconf)2.69

 

7. 因为运行SysBenchconfigure 需要MySql include和lib文件,到MySql官网选择MySQL Community Server, GA, 5.7.21, Linux –Generic, 64 bit.下载,

#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

#md5sum mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz //检查下载文件是否正确完整

 

9. 执行 # tar -zxvfmysql-5.7.11-linux-glibc2.5-x86_64.tar.gz

解压缩,生成新目录mysql-5.7.11-linux-glibc2.5-x86_64

11. 运行#ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql

 建立一个mysql 的软连接,是为了以后方便配置与操作。

12. cd 到sysbench-1.0.14目录,运行

./configure --with-mysql-includes=/opt/mysql/include--with-mysql-libs=/opt/mysql/lib && make &&make install

成功

 

13.运行 sysbench,报错提示

sysbench: error while loading sharedlibraries: libmysqlclient.so.20: cannot open shared object file:No such file or directory

原因是/usr/lib64/下面没有这个文件,而mysql的安装目录下有

运行ln -s /opt/mysql/lib/libmysqlclient.so.20/usr/lib64/libmysqlclient.so.20

再运行./sysbench成功, 提示缺少参数

 

14. 运行如下命令,准备测试DB数据

sysbench --mysql-host=xxxx --mysql-port=3306 --mysql-user=aliyun_test --mysql-password=xxxx --mysql-db=aliyun_test_db--oltp-tables-count=10 --oltp-table-size=100000 --threads=10 --time=120--report-interval=10 ./tests/include/oltp_legacy/oltp.lua prepare

其中,mysql-host后面是数据库服务器的名称或者IP地址,可以是本机地址,也可以是网络上某个服务器的地址。执行模式为complex,使用了10个表,每个表有10万条数据,客户端的并发线程数为10,执行时间为120秒,每10秒生成一次报告。

执行过程输出如下图:

 

从数据库管理软件登录,可以看到DB “aliyun_test_db”下生成了10张表,sbtest1~sbtest10, 选中某个表右键,打开表,可以查看表内记录,因为是免费版,最多只能翻页1000行,点击上面的“总行数”,显示有100,000行。

 

15. 执行测试

将测试结果导出到文件中,便于后续分析

sysbench --mysql-host=xxxx --mysql-port=3306 --mysql-user=aliyun_test --mysql-password=xxxx--mysql-db=aliyun_test_db --oltp-tables-count=10 --oltp-table-size=100000--threads=10 --time=120 --report-interval=10./tests/include/oltp_legacy/oltp.lua run >> /home/aliyun_test/mysysbench.log

执行2分钟后完毕

 

16. 查看执行结果

Vim /home/aliyun_test/mysysbench.log

 

其中Number of threads, 即客户端的并发连接数为10,TPS,即每秒Transaction是191.93,QPS,即每秒queries是3838.68。延时在95th percentil为68.05ms。

 

17. 清理数据

sysbench --mysql-host=xxxx --mysql-port=3306--mysql-user=aliyun_test --mysql-password=xxxx --mysql-db=aliyun_test_db--oltp-tables-count=10 --oltp-table-size=100000 ./tests/include/oltp_legacy/oltp.luacleanup

从数据库管理工具可以看到aliyun_test_db中数据已经清空
阅读更多

没有更多推荐了,返回首页