一、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

四、测试方法

基准测试

Mysql数据库测试

Pgsql数据测试