用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.gz2. tar -vzxf sysbench-0.4.12.14.tar.gz 解压缩,生成新目录sysbe
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中数据已经清空开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)