一、Sysbench的用途
sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂的工作负载。
源码地址:https://github.com/akopytov/sysbench
Sysbench 附带以下测试基准:
- oltp_*.lua:一组类似 OLTP 的数据库基准测试
- fileio:文件系统级基准
- cpu:一个简单的 CPU 基准测试
- memory:内存访问基准
- threads:基于线程的调度程序基准
- mutex: POSIX 互斥量基准
特性
- 提供有关速率和延迟的广泛统计数据,包括延迟百分位数和直方图;
- 即使有数千个并发线程,开销也很低。sysbench 能够每秒生成和跟踪数亿个事件;
- 通过在用户提供的
- 也可以用作通用 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