专栏首页MySQL参数系列DBA必备压测工具之--sysbench

DBA必备压测工具之--sysbench

1.github地址:https://github.com/akopytov/sysbench

2.在线安装

依赖安装:

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

sysbench安装(centos系统)

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

3.用法

 sysbench [options]... [testname] [command]

参数解释:

testname是一个内置测试(例如文件、内存、cpu等)的可选名称,或者一个捆绑的Lua脚本的名称(例如oltp_read_only),或者一个自定义Lua脚本的路径。如果在命令行上没有指定测试名(因此也没有命令,因为在这种情况下,它将被解析为testname),或者测试名是一个短横线(“-”),那么sysbench期望Lua脚本在其标准输入上执行。

command是一个可选参数,将由sysbench传递给内置的测试或脚本,由testname指定。命令定义了测试必须执行的动作。

可用命令的列表取决于特定的测试。有些测试还实现了它们自己的自定义命令。有4个选项:

prepare ---准备数据

run ---测试

cleanup ---清理数据

help ---帮助

常见可选项列表如下:

Option

Description

Default value

--threads

The total number of worker threads to create

1

--events

Limit for total number of requests. 0 (the default) means no limit

0

--time

Limit for total execution time in seconds. 0 means no limit

10

--warmup-time

Execute events for this many seconds with statistics disabled before the actual benchmark run with statistics enabled. This is useful when you want to exclude the initial period of a benchmark run from statistics. In many benchmarks, the initial period is not representative because CPU/database/page and other caches need some time to warm up

0

--rate

Average transactions rate. The number specifies how many events (transactions) per seconds should be executed by all threads on average. 0 (default) means unlimited rate, i.e. events are executed as fast as possible

0

--thread-init-timeout

Wait time in seconds for worker threads to initialize

30

--thread-stack-size

Size of stack for each thread

32K

--report-interval

Periodically report intermediate statistics with a specified interval in seconds. Note that statistics produced by this option is per-interval rather than cumulative. 0 disables intermediate reports

0

--debug

Print more debug info

off

--validate

Perform validation of test results where possible

off

--help

Print help on general syntax or on a specified test, and exit

off

--verbosity

Verbosity level (0 - only critical messages, 5 - debug)

4

--percentile

sysbench measures execution times for all processed requests to display statistical information like minimal, average and maximum execution time. For most benchmarks it is also useful to know a request execution time value matching some percentile (e.g. 95% percentile means we should drop 5% of the most long requests and choose the maximal value from the remaining ones). This option allows to specify a percentile rank of query execution times to count

95

--luajit-cmd

perform a LuaJIT control command. This option is equivalent to luajit -j. See LuaJIT documentation for more information

请注意,所有大小选项的数值(如该表中的——thread-stack-size)都可以通过添加相应的后缀来指定

(K表示kilobytes, M表示megabytes, G表示gigabytes, T表示terabytes)。

随机数的选项:

Sysbench提供了许多算法来生成根据给定概率分布分布的随机数。下表列出了可用于控制这些算法的选项。

Option

Description

Default value

--rand-type

random numbers distribution {uniform, gaussian, special, pareto, zipfian} to use by default. Benchmark scripts may choose to use either the default distribution, or specify it explictly, i.e. override the default.

special

--rand-seed

seed for random number generator. When 0, the current time is used as an RNG seed.

0

--rand-spec-iter

number of iterations for the special distribution

12

--rand-spec-pct

percentage of the entire range where 'special' values will fall in the special distribution

1

--rand-spec-res

percentage of 'special' values to use for the special distribution

75

--rand-pareto-h

shape parameter for the Pareto distribution

0.2

--rand-zipfian-exp

shape parameter (theta) for the Zipfian distribution

0.8

4. 实际测试案例

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=password --mysql-db=dbtest oltp_insert prepare
sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root 
--mysql-password=password --time=12000 --mysql-db=dbtest oltp_insert run > test1.txt &

ps:1.本文为sysbench 1.0.20版本,参数与老版本有区别;

2.其他操作系统的安装可参考文章开头地址。

本文分享自微信公众号 - DBA札记(dba_jason),作者:小董学编程

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • sysbench在美团点评中的应用

    如何快速入门数据库?以我个人经验来看,数据库功能和性能测试是一条不错的捷径。当然从公司层面,数据库测试还有更多实用的功能。这方面,美团点评使用的是知名工具sys...

    美团技术团队
  • MySQL 之压力测试工具

    一、MySQL自带的压力测试工具——Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟...

    小手冰凉
  • sysbench压测小记(r11笔记第99天)

    对于很多线上业务而言,如果有新服务器,新的环境,新的业务,到底资源和预期的承载压力是否匹配,这个得用数据说话,或是通过严谨的论证来阐述。 比如一台新...

    jeanron100
  • 技术分享 | MySQL binlog 分析工具 analysis_binlog 的使用介绍

    作为一个 MySQL DBA,查看分析 binlog 是日常工作的一部分。不知道你是否遇到过这样的需求:查询一个时间段内各个表的 dml 统计情况。但,如果 b...

    爱可生开源社区
  • 三款云数据库性能测试,谁表现最好?

    MySQL性能压测或者基准测试看起来很简单,使用sysbench,tpcc工具跑跑拿到数据就好,其实压测是一个技术活儿,尤其是涉及到性能对比的测试,因为不同场景...

    用户1278550
  • 性能测试 —— MySQL 基准测试

    摘要: 原创出处 http://www.iocoder.cn/Performance-Testing/MySQL-benchmark/ 「芋道源码」欢迎转载,保...

    芋道源码
  • swingbench压测Oracle小记(r12笔记第19天)

    之前也分享过一篇关于swingbench测试Oracle的文章,图形工具和命令行的博弈-swingbench配置(r8笔记第63天),也算是一个起步了。 ...

    jeanron100
  • MySQL 开源工具集合

    区别在于TPCC测试的业务流程,sysbench测试的单语句执行性能。按照自需选择测试工具。

    数据和云
  • swingbench压测Oracle小记(r12笔记第20天)

    今天抽时间在整理一个关于MySQL和Oracle共同面临的问题,但是它们有着不同的解决方案,就是经典的partial write问题,我也看到网上有很多D...

    jeanron100
  • CentOS7压力测试MGR

    最近在规划CentOS7版本中的MySQL测试情况,于是找了公司内部的虚拟机来做下模拟测试。

    jeanron100
  • MySQL DBA必备工具Percona Toolkit--上篇

    今天给大家介绍一个非常好用的工具集--percona-toolkit,该工具集可以说是mysql dba的得力助手。

    CorollaD
  • 详解 MySQL 基准测试和sysbench工具

    数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,...

    民工哥
  • MySQL审计插件使用和对比

    数据库审计是数据库安全中很重要的一个环节,说到审计,有些上市公司内部还会根据塞班斯法案,进行404审计等等。 而最基本的审计还是需要的,有些同学可能...

    jeanron100
  • 性能测评(1):MySQL云数据库vs自建数据库

    最近在学习数据库相关知识,经常跟一个在某金融公司做DBA的大学朋友交流问题。听说他们公司最近在使用云数据库,我立马来了兴趣,以前只听说过云主机,没想到数据库这种...

    磊哥测评
  • 关于MySQL的基准测试

    当我们对数据库进行优化后,只有进行测量系统性能才能知道优化是否有效,这种测量的方式就是基准测试。基准测试的定义如下:

    端碗吹水
  • 数据库篇:自建数据库VS云数据库,到底怎么选?

    最近在学习数据库相关知识,经常跟一个在某金融公司做DBA的大学朋友交流问题。听说他们公司最近在使用云数据库,我立马来了兴趣,以前只听说过云主机,没想到数据库这种...

    勤劳的小蜜蜂
  • Sysbench测试神器:一条命令生成百万级测试数据

    基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的、可复现、可对比的测试。

    测试开发技术
  • MongoDB Compass--MongoDB DBA必备的管理工具

    MongoDB Compass是MongoDB官网提供的一个集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体的...

    大数据和云计算技术
  • Sysbench测试神器:一条命令生成百万级测试数据

    基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的、可复现、可对比的测试。

    测试开发技术

扫码关注云+社区

领取腾讯云代金券