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

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

时间:2022-10-21 11:38:04浏览次数:78  
标签:install oltp -- OLTP 测试 mysql 测试工具 sysbench

 

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--OLTP数据库性能测试与服务器基准功能测试工具_基准测试

 

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

Debian/Ubuntu

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

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。

要在没有--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

 

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

其他的参考学习链接:

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

  作者:Syw



标签:install,oltp,--,OLTP,测试,mysql,测试工具,sysbench
From: https://blog.51cto.com/u_15739244/5781745

相关文章

  • 【Axure】第一次使用Axure的总结
      产品经理在每个产品周期中,有着不同的工作内容: 1、在产品概念阶段,产品经理需要结合市场、企业战略规划、用户需求来规划产品,以论证产品是否满足战略需求,同时能解决......
  • Centos7 安装docker
    1、安装命令如下:$curl-fsSLhttps://get.docker.com|bash-sdockermirrorAliyun 2、设置仓库$sudoyuminstall-yyum-utils\device-mapper-persistent-data\lvm2......
  • 【自然语言处理(NLP)】随机数生成与排序
    【自然语言处理(NLP)】随机数生成与排序作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建......
  • 第二章 ansible配置文件
    第二章ansible配置文件一、/etc/ansible有以下三个文件或者目录生成1、Hosts主机清单配置文件2、ansible.cfgAnsible配置文件3、Roles角色定义目录二、ansible配......
  • Dbeaver 连接Hive
    1、DBeaver的下载地址:​​https://dl.pconline.com.cn/download/396444.html​​2、支持多种类型的数据库连接方式,具体安装后可详细查看    默认下载驱动文件的速度会很......
  • FreeSwitch报错AUDIO RTP REPORTS ERROR: [Bind Error!
    之前弄了,注册用户在公网映射通过,但电话网关一般在同一内网,没多注意。今日有个项目,特殊云,电话用户和网关均在同一侧,不在freeswitch服务端端于是报了个错,电话无法外呼出去......
  • Winform打包生成exe
    1、首选下载安装MicrosoftVisualStudioInstallerProjects扩展插件 2、新建项目选择模板setup   3、第三步:项目创建成功之后,添加文件1.右击ApplicationFold......
  • Elasticsearch-----介绍与增删改查操作
    一、介绍:1、概念:是功能非常强大的全文搜索引擎,目的是为了能快速的查询数据2、核心概念:接近实时(NRT):Elasticsearch是一个接近实时的搜索平台。从索引一个文档直到这个文档能......
  • 【Jmeter】-调用JAR包方法中文乱码
    前言最近有个项目开发给了JAR包要做签名,可是Jmeter调用签名方法中文乱码。上网一顿查找,只能找到请求和响应中文乱码问题的解决方法,然却不能解决我的乱码问题(ಥ﹏ಥ)(ಥ﹏ಥ)(......
  • ABP vNext 批量操作
    ABP框架6.0后提供了 InsertManyAsync  UpdateManyAsync DeleteManyAsync 批量操作方法源码:publicinterfaceIBasicRepository<TEntity>:IReadOnlyBasicReposi......