一、Sysbench的用途
sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂的工作负载。
源码地址:https://github.com/akopytov/sysbench
-
Sysbench 附带以下测试基准:
-
- oltp_*.lua:一组类似 OLTP 的数据库基准测试
- fileio:文件系统级基准
- cpu:一个简单的 CPU 基准测试
- memory:内存访问基准
- threads:基于线程的调度程序基准
- mutex: POSIX 互斥量基准
-
特性
- 提供有关速率和延迟的广泛统计数据,包括延迟百分位数和直方图;
- 即使有数千个并发线程,开销也很低。sysbench 能够每秒生成和跟踪数亿个事件;
- 通过在用户提供的 Lua 脚本中实现预定义的钩子,可以轻松创建新的基准测试;
- 也可以用作通用 Lua 解释器,只需在脚本中替换 #!/usr/bin/lua为 #!/usr/bin/sysbench
二、Sysbench的安装
本安装适用于Linxu、Readhad、ARM(麒麟)、Ubuntu等系统的安装
-
确认系统信息
cat /etc/redhat-release CentOS Linux release 7.6.1810 (AltArch) uname -a Linux localhost.localdomain 4.19.90-23.6.v2101.ky10.aarch64 #1 SMP Wed Mar 17 14:45:17 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
-
下载最新版本
cd /opt
## 下载当前的最新版本
wget https://github.com/akopytov/sysbench/archive/refs/tags/1.0.20.tar.gz -O sysbench-1.0.20.tar.gz -
安装
-
安装编译工具
sudo yum install -y make automake libtool pkg-config libaio-dev ## 基于mysql的支持 sudo yum -y install mariadb-devel openssl-devel luajit ## 基于postgresql的支持 sudo yum -y install postgresql-devel luagit
-
执行安装
## 解压 cd /opt tar -zxvf sysbench-1.0.20.tar.gz ## 进入sysbench ## 执行gcc安装 cd /opt/sysbench-1.0.20 ./autogen.sh
-
安装配置(Makefile按需选择执行)
- 基准安装方式
## 基本安装--此安装仅用于测试资源基准测试,如cpu、memory
## --without-mysql:排除mysql,因为如果要安装mysql话需要现有mysql驱动./configure --without-mysql
make && make install - 基于Mysql压测的安装方式
## mysql安装--此安装用于基准测试+Mysql压测。
## --with-pgsql :声明基于mysql的安装,需要提前安装好mysql程序,并记录安装位置,下面参数使用
## --with-mysql-includes:包含mysql的includes
## --with-mysql-libs:包含mysql的libs## 注意--with-mysql-includes、--with-mysql-libs值的路径为当前实际mysql安装程序的路径
./configure --with-pgsql --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/
## 安装install
make && make install - 基于Postgresql压测的安装方式
## pgsql安装--此安装用于基准测试+pgsql压测。
## --without-mysql:排除mysql的安装
## --with-pgsql:声明基于pgsql的安装 需要提前安装pgsql,并记录安装位置,下面参数使用
## --with-pgsql-includes:包含pgsql的includes
## --with-pgsql-libs:包含pasql的libs## 注意--with-mysql-includes、--with-mysql-libs值的路径为当前实际postgresql安装程序的路径
./configure --without-mysql --with-pgsql --with-pgsql-includes=/usr/local/postgresql/include --with-pgsql-libs=/usr/local/postgresql/lib## 安装install
make && make install
-
-
验证
sysbench --version
sysbench 1.1.0-ead2689
三、安装中可能出现的问题
-
缺少so文件
-
报错信息
## 错误信息
/opt/sysbench/bin/sysbench:error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory -
解决方案
## 查找有无此文件 find . -name 'libmysqlclient*' ## 如果有,则建立软连接,如果没有则安装包含此类文件的程序,如mysql等 ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/local/lib/libmysqlclient.so.20 ## 添加以下配置到/etc/ld.so.conf vim /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/lib ## 更新配置
/sbin/ldconfig -v ## 验证 sysbench --version sysbench 1.1.0-ead2689
-
四、测试方法
-
基准测试
-
Mysql数据库测试
-
Pgsql数据测试