文档首页 > > 移植指南> 安装Sysbench

安装Sysbench

分享
更新时间:2020/07/14 GMT+08:00

介绍

简要介绍

sysbench是一款开源的多线程性能测试工具,可以执行CPU、内存、线程、IO、数据库等方面的性能测试。

编写语言:C

一句话概述:多线程性能测试工具

建议的版本

建议使用版本为“1.0.16”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

获取源码

https://github.com/akopytov/sysbench/releases提供sysbench各版本的源码压缩包,可以直接下载。

编译和安装

本文以“sysbench-1.0.16”版本、数据库以MariaDB为例,下载源码,并编译安装。

  1. 安装sysbench的依赖包。

    yum install gcc gcc-c++ automake make libtool -y

  2. (可选)安装MariaDB数据库。

    若已经安装,可跳过此步骤。

    yum install mariadb-server -y

  3. 启动并进入数据库。

    systemctl start mariadb

    mysql

  4. 创建 “sysuser”账户供后续测试sysbench使用。

    创建账号名为“sysuser”,密码为 “password”的帐号,供后续测试sysbench使用。其中,“password”请根据实际修改。

    create user 'sysuser'@'localhost' IDENTIFIED BY 'password';

    flush privileges;

    GRANT ALL ON *.* TO 'sysuser'@'localhost';

    flush privileges;

  5. 安装sysbench的依赖包mysql-devel。

    yum install mysql-devel -y

  6. 查询MariaDB的库文件保存路径。

    mysql_config -help

    记录回显信息中的“pkgincludedir”“pkglibdir”的值,供后续步骤使用,如下面加粗部分所示。

    Usage: /usr/bin/mysql_config [OPTIONS]
    Options:
            --cflags         [-I/usr/include/mysql]
            --include        [-I/usr/include/mysql]
            --libs           [-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto]
            --libs_r         [-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto]
            --plugindir      [/usr/lib64/mysql/plugin]
            --socket         [/var/lib/mysql/mysql.sock]
            --port           [0]
            --version        [5.5.60]
            --libmysqld-libs [-L/usr/lib64/mysql -lmysqld]
            --variable=VAR   VAR is one of:
                    pkgincludedir [/usr/include/mysql]
                    pkglibdir     [/usr/lib64/mysql]
                    plugindir     [/usr/lib64/mysql/plugin]

  7. 下载sysbench源码。

    wget https://codeload.github.com/akopytov/sysbench/tar.gz/1.0.16

  8. 解压并编译安装sysbench。

    tar -zxvf 1.0.16

    cd sysbench-1.0.16

    ./autogen.sh

    ./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql --with-mysql
    • “/usr/include/mysql”6中查到的“pkgincludedir”的值。
    • “/usr/lib64/mysql” 6中查到的“pkglibdir”的值。
    回显信息如下,则表示生成编译文件成功。
    ===============================================================================
    sysbench version   : 1.0.16
    CC                 : gcc -std=gnu99
    CFLAGS             : -O2 -funroll-loops -ggdb3  -Wall -Wextra -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wnest
    ed-externs -Wno-format-zero-length -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
     -Wcast-align -Wvla   -pthread
    CPPFLAGS           : -D_GNU_SOURCE  -DCK_MD_CACHELINE=128  -I$(top_srcdir)/src -I$(abs_top_builddir)/third_party/luajit/inc 
    -I$(abs_top_builddir)/third_party/concurrency_kit/include
    LDFLAGS            : -L/usr/local/lib 
    LIBS               : -lm 
    EXTRA_LDFLAGS      : 
    
    prefix             : /usr/local
    bindir             : ${prefix}/bin
    libexecdir         : ${prefix}/libexec
    mandir             : ${prefix}/share/man
    datadir            : ${prefix}/share
    
    MySQL support      : yes
    Drizzle support    : no
    AttachSQL support  : no
    Oracle support     : no
    PostgreSQL support : no
    
    LuaJIT             : bundled
    LUAJIT_CFLAGS      : -I$(abs_top_builddir)/third_party/luajit/inc
    LUAJIT_LIBS        : $(abs_top_builddir)/third_party/luajit/lib/libluajit-5.1.a -ldl
    LUAJIT_LDFLAGS     : -rdynamic
    
    Concurrency Kit    : bundled
    CK_CFLAGS          : -I$(abs_top_builddir)/third_party/concurrency_kit/include
    CK_LIBS            : $(abs_top_builddir)/third_party/concurrency_kit/lib/libck.a
    configure flags    : 
    ===============================================================================

  9. 编译并安装。

    make

    make install

  10. 查询sysbench版本号。

    sysbench --version

    回显信息如下,则表示sysbench安装成功。

    sysbench 1.0.16

运行和验证

以MariaDB数据库为例。

  1. 登录MariaDB数据库。

    mysql -usysuser -ppassword -hlocalhost -P3306

    回显信息如下,表示登录成功:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 2212
    Server version: 5.5.60-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]>
  2. 创建sysbench测试使用的数据库“dbtest”

    create database dbtest;

    show databases;

    回显信息中含有数据库“dbtest”,则表示“dbtest”数据库创建成功,如加粗部分所示。
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | dbtest             |
    | kbe                |
    | mysql              |
    | performance_schema |
    +--------------------+
    5 rows in set (0.00 sec)
    
    MariaDB [(none)]>
  3. 使用sysbench准备测试数据。

    sysbench /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=localhost --mysql-port=3306 --mysql-user=sysuser --mysql-password=123456 --mysql-db=dbtest --oltp-tables-count=1 --oltp-table-size=1000 --oltp-dist-type=uniform --oltp-read-only=off --oltp-test-mode=complex --rand-init=on --db-driver=mysql --report-interval=10 --threads=1000 --time=120 prepare

    回显信息如下:
    sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
    
    Creating table 'sbtest1'...
    Inserting 1000 records into 'sbtest1'
    Creating secondary indexes on 'sbtest1'...
  4. 登录数据库,查看“dbtest”数据库中是否新建表“sbtest1”且表记录数为1000条。

    “password”为设置的“sysuser”帐户的登录密码,请根据实际填写。

    mysql -usysuser -ppassword -hlocalhost -P3306

    use dbtest;

    show tables;

    回显信息如下:
    MariaDB [dbtest]> show tables;
    +------------------+
    | Tables_in_dbtest |
    +------------------+
    | sbtest1          |
    +------------------+
    1 row in set (0.01 sec)
    
    MariaDB [dbtest]>
  5. 查询表“sbtest1”中的记录数,如下为1000,则表示sysbench安装成功且可正常使用。

    select count(*) from sbtest1;

    回显信息如下:
    MariaDB [dbtest]> select count(*) from sbtest1;
    +----------+
    | count(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    
    MariaDB [dbtest]>
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问