城外雪

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、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等系统的安装

  1. 确认系统信息 

    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
  2. 下载最新版本

    cd /opt
    ## 下载当前的最新版本
    wget
    https://github.com/akopytov/sysbench/archive/refs/tags/1.0.20.tar.gz -O sysbench-1.0.20.tar.gz
  3. 安装

    • 安装编译工具

      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
  4. 验证

    sysbench --version
      sysbench 1.1.0-ead2689

三、安装中可能出现的问题

  1.  缺少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

四、测试方法

  1. 基准测试

  2. Mysql数据库测试

  3. Pgsql数据测试

posted on 2021-07-29 11:23  城外雪  阅读(3082)  评论(0编辑  收藏  举报