• sysbench--OLTP数据库性能测试与服务器基准功能测试工具


    sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂的工作负载。

    sysbench的作用:sysbench为 Linux 提供基准测试功能。sysbench 支持测试 CPU、内存、文件 I/O、互斥锁性能,甚至MySQL基准测试。

    详细解释为以下的测试:

    • oltp_*.lua:一组类似 OLTP 的数据库基准测试,数据库性能测试(OLTP 基准测试,需要通过 /usr/share/sysbench/ 目录中的 Lua 脚本执行,例如 oltp_read_only.lua 脚本执行只读测试)
    • fileio:文件系统级基准
    • cpu:一个简单的 CPU 基准测试
    • memory:内存访问基准
    • threads:基于线程的调度程序基准
    • mutex: POSIX 互斥量基准

    sysbench特点

    •  提供有关速率和延迟的广泛统计数据,包括延迟百分位数和直方图;
    • 即使有数千个并发线程,开销也很低。sysbench 能够每秒生成和跟踪数亿个事件;
    • 通过在用户提供的 Lua 脚本中实现预定义的钩子,可以轻松创建新的基准测试;
    • 也可以用作通用 Lua 解释器,只需在脚本中替换#!/usr/bin/lua为#!/usr/bin/sysbench

    提供的常用测试模型

    Sysbench压测三个步骤 

    • prepare,准备数据
    • run,运行测试模型
    • cleanup,清理测试数据

    通常仅需准备一次数据,在此数据基础上测试各种模型即可。 

    Sysbench 常用参数如下:

    • --oltp-tables-count=1表数量
    • --oltp-table-size=10000000每个表产生的记录行数
    • --oltp-read-only=off:是否生成只读SQL,默认 off,如果设置为 on,则 oltp 模型不会生成 update, delete, insert 的 SQL 语句
    • --oltp-skip-trx=[on|off]:省略 BEGIN / COMMIT 语句。默认是 off
    • --rand-init=on:是否随机初始化数据,如果不随机化那么初始好的数据每行内容除了主键不同外其他完全相同
    • --num-threads=12并发线程数,可以理解为模拟的客户端并发连接数
    • --report-interval=10:表示每 10s 输出一次性能数据
    • --max-requests=0:压力测试产生请求的总数,如果以下面的 max-time 来记,这个值设为 0 即可
    • --max-time=120测试的持续时间
    • --oltp_auto_inc=off:ID是否为自增列
    • --oltp_secondary=on:将ID设置为非主键防止主键冲突
    • --oltp_range_size=5:连续取值 5 个,必定走到 5 个分片
    • --mysql_table_options='dbpartition by hash(id) tbpartition by hash(id) tbpartitions 2':PolarDB-X 支持拆分表,在建表的时候需要指定拆分方式

    一、安装操作方式一

    下载sysbench

    git clone https://github.com/akopytov/sysbench.git

    编译构建安装

    ./autogen.sh
    ./configure #./configure --without-mysql(不编译测试mysql的功能模块)
     make && make install

    安装操作方式二

    1、下载安装

    CentOS: 

    curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
    sudo yum -y install sysbench

    Debian/Ubuntu 

    curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash
    sudo apt -y install sysbench

    macOS

    # Add --with-postgresql if you need PostgreSQL support(注释)
    brew install sysbench

    2、编译构建

    Debian/Ubuntu

    apt -y install make automake libtool pkg-config libaio-dev(注释)
    # For MySQL support
    apt -y install libmysqlclient-dev libssl-dev
    # For PostgreSQL support
    apt -y install libpq-dev

    RHEL/CentOS

    yum -y install make automake libtool pkgconfig libaio-devel
    # For MySQL support, replace with mysql-devel on RHEL/CentOS 5
    yum -y install mariadb-devel openssl-devel
    # For PostgreSQL support
    yum -y install postgresql-devel

    macOS

    brew install automake libtool openssl pkg-config
    # For MySQL support
    brew install mysql
    # For PostgreSQL support
    brew install postgresql
    # openssl is not linked by Homebrew, this is to avoid "ld: library not found for -lssl"
    export LDFLAGS=-L/usr/local/opt/openssl/lib 

    3、构建和安装

    ./autogen.sh
    #添加 --with-pgsql 以构建支持 PostgreSQL 
    ./configure 
    make -j 
    make install

    以上将默认构建支持 MySQL 的 sysbench。如果您在非标准位置有 MySQL 头文件和库(并且 mysql_config中找不到PATH),您可以使用--with-mysql-includes和--with-mysql-libs选项显式指定它们./configure

    要在没有 MySQL 支持的情况下编译 sysbench,请使用--without-mysql. 如果没有可用的数据库驱动程序,则与数据库相关的脚本将无法运行,但其他基准测试将起作用。

    二、查看sysbench版本

    [gysl@gysl-DevOps ~]$ sysbench --version
    sysbench 1.0.9

     三、查看帮助信息

    1、 sysbench --help(查看所有帮助)
    2、 sysbench fileio help (查看文件IO相关内容帮助)【语法为:sysbench <testname> help】

     测试文件i/o

    1 seqwr 顺序写入
    2 seqrewr 顺序重写
    3 seqrd 顺序读取
    4 rndrd 随机读取
    5 rndwr 随机写入
    6 rndrw 混合随机读/写

    详细内容的学习参考链接,讲解的特别详细【推荐】:安装 sysbench 压测服务器以及 MySQL 

    其他的参考学习链接:

    https://wiki.gentoo.org/wiki/Sysbench

    1.作者:Syw
    2.出处:http://www.cnblogs.com/syw20170419/
    3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    4.如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    浅谈流形学习
    变分例子
    变分
    基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN
    模拟退火
    粒子群算法
    JavaEE Tutorials (24)
    洛谷 P2026 求一次函数解析式
    洛谷 P1598 垂直柱状图
    洛谷 P1781 宇宙总统
  • 原文地址:https://www.cnblogs.com/syw20170419/p/15182416.html
Copyright © 2020-2023  润新知