iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >sysbench对数据库进行压力测试
  • 971
分享到

sysbench对数据库进行压力测试

2024-04-02 19:04:59 971人浏览 泡泡鱼
摘要

sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。安装方式:https://GitHub.com/akopytov/sysbench/blob/master/REA

sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。

安装方式:https://GitHub.com/akopytov/sysbench/blob/master/README.md#general-command-line-options

此处安装的是sysbench 1.0.6版本,和网上大部分的0.4,0.5版本的命令不太一样。


sysbench支持三种测试方案:

1、使用自带的测试模块,如对cpu,I/O,memory等的测试。

2、使用自带的lua脚本进行测试,如果使用快速安装的方式,默认的脚本路径为:/usr/share/sysbench

3、使用自定义的lua脚本。


获取帮助信息:

如果对相关模块或者脚本的参数不明确的,可以使用 sysbench  testname help来查看,testname含模块名称和脚本名称。


sysbench经典测试命令:

  • prepare: 创建测试数据或者相关的测试文件,为测试做准备工作。如数据库的测试数据准备等。

  • run: 开始执行测试。

  • cleanup: 移除测试数据

  • help: 帮助命令


测试CPU性能

sysbench cpu --cpu-max-prime=10000 run

#显示测试结果
General statistics:
    total time:                          10.0003s
    total number of events:              8692

Latency (ms):
         min:                                  1.12
         avg:                                  1.15
         max:                                  2.98
         95th percentile:                      1.25
         sum:                               9996.64

Threads fairness:
    events (avg/stddev):           8692.0000/0.00
    execution time (avg/stddev):   9.9966/0.00


I/O测试

准备测试数据:

sysbench fileio --file-total-size=40G prepare

运行顺序写入测试:

sysbench fileio --file-total-size=40G --file-test-mode=seqwr run

#测试结果
File operations:
    reads/s:                      0.00
    writes/s:                     3916.87
    fsyncs/s:                     5001.01

Throughput:
    read, MiB/s:                  0.00
    written, MiB/s:               61.20

General statistics:
    total time:                          10.0055s
    total number of events:              89250

Latency (ms):
         min:                                  0.01
         avg:                                  0.11
         max:                                 28.02
         95th percentile:                      0.12
         sum:                               9937.24

Threads fairness:
    events (avg/stddev):           89250.0000/0.00
    execution time (avg/stddev):   9.9372/0.00

运行顺序重写测试:

sysbench fileio --file-total-size=40G --file-test-mode=seqrewr run

#测试结果:

File operations:
    reads/s:                      0.00
    writes/s:                     4018.65
    fsyncs/s:                     5131.38
Throughput:
    read, MiB/s:                  0.00
    written, MiB/s:               62.79
General statistics:
    total time:                          10.0003s
    total number of events:              91531
Latency (ms):
         min:                                  0.00
         avg:                                  0.11
         max:                                 31.45
         95th percentile:                      0.10
         sum:                               9933.80
Threads fairness:
    events (avg/stddev):           91531.0000/0.00
    execution time (avg/stddev):   9.9338/0.00

混合随机读/写:(如果执行出错,需要重新prepare数据)

sysbench fileio --file-total-size=40G --file-test-mode=rndrw  --max-time=100 --max-requests=0 run
#测试结果:

File operations:
    reads/s:                      338.98
    writes/s:                     225.99
    fsyncs/s:                     722.23

Throughput:
    read, MiB/s:                  5.30
    written, MiB/s:               3.53

General statistics:
    total time:                          100.0007s
    total number of events:              128727

Latency (ms):
         min:                                  0.00
         avg:                                  0.78
         max:                                 43.01
         95th percentile:                      2.97
         sum:                              99785.92

Threads fairness:
    events (avg/stddev):           128727.0000/0.00
    execution time (avg/stddev):   99.7859/0.00


清除测试数据:

sysbench fileio --file-total-size=40G cleanup


OLTP基准测试

OLTP基准测试模拟了一个简单的事务处理系统的工作负载。若要对数据库性能进行测试就要使用OLTP相关的脚本。

在/usr/share/sysbench/目录下有相关的lua脚本:

bulk_insert.lua
oltp_common.lua
oltp_delete.lua
oltp_insert.lua
oltp_point_select.lua
oltp_read_only.lua
oltp_read_write.lua
oltp_update_index.lua
oltp_update_non_index.lua
oltp_write_only.lua
select_random_points.lua
select_random_ranges.lua

对于未知的测试参数,可以通过 sysbench  scripts-name help 来查看。


创建测试数据:

sysbench oltp_common  --table-size=1000000 --db-driver=Mysql \
--mysql-db=test --mysql-user=root --mysql-passWord=123456  prepare


Creating table 'sbtest1'...
Inserting 1000000 records into 'sbtest1'
Creating a secondary index on 'sbtest1'...

执行run命令进行测试:(只读)

sysbench oltp_read_only  --table-size=1000000 --db-driver=mysql \
 --mysql-db=test --mysql-user=root --mysql-password=123456 --time=60  --max-requests=0 --threads=8 run
#测试结果
 
Running the test with following options:
Number of threads: 8
Initializing random number generator from current time
Initializing worker threads...
Threads started!
SQL statistics:
    queries perfORMed:
        read:                            1679174
        write:                           0
        other:                           239882
        total:                           1919056
    transactions:                        119941 (1998.81 per sec.)
    queries:                             1919056 (31980.95 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)
General statistics:
    total time:                          60.0047s
    total number of events:              119941
Latency (ms):
         min:                                  0.32
         avg:                                  4.00
         max:                                 56.17
         95th percentile:                      8.13
         sum:                             479830.78
Threads fairness:
    events (avg/stddev):           14992.6250/116.75
    execution time (avg/stddev):   59.9788/0.00

除了使用read_only测试,我们还可以测试数据库的写性能:

sysbench oltp_write_only  --table-size=1000000 --db-driver=mysql \
 --mysql-db=test --mysql-user=root --mysql-password=123456 --time=60  --max-requests=0 --threads=8 run
#测试结果

SQL statistics:
    queries performed:
        read:                            0
        write:                           83764
        other:                           41882
        total:                           125646
    transactions:                        20941  (348.93 per sec.)
    queries:                             125646 (2093.56 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)
General statistics:
    total time:                          60.0120s
    total number of events:              20941
Latency (ms):
         min:                                  4.92
         avg:                                 22.92
         max:                               5518.27
         95th percentile:                     69.29
         sum:                             479968.99
Threads fairness:
    events (avg/stddev):           2617.6250/17.87
    execution time (avg/stddev):   59.9961/0.00

上面的结果中包含了很多的信息,其中重点需要我们关注的信息是:

1、总的事务数 (total number of events)

2、每秒事务数

3、时间统计信息(最小,平均,最大响应时间,以及95%百分比响应时间)

4、线程公平性统计信息,表示负载的公平性。(thread-fairness)


清理测试数据:

sysbench oltp_read_only  --table-size=1000000 --db-driver=mysql \
 --mysql-db=test --mysql-user=root --mysql-password=123456 cleanup







您可能感兴趣的文档:

--结束END--

本文标题: sysbench对数据库进行压力测试

本文链接: https://www.lsjlt.com/news/40278.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行sysbench压力测试
    如何进行sysbench压力测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 对于很多线上业务而言,如果有新服务器,新的...
    99+
    2024-04-02
  • Mysql压力测试(sysbench)
    目录 配置项目环境: 参考:采用sysbench压测mysql详解_dream21st的博客-CSDN博客 实验步骤: 1、安装sysbench工具 2、在master上创建用户和库,配置用户的权限可以使他可以访问库(Mysql的主从复制...
    99+
    2023-09-05
    mysql 压力测试 数据库
  • JMeter如何对MySQL数据库进行压力测试
    这篇文章将为大家详细讲解有关JMeter如何对MySQL数据库进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装并配置 JMeter下载官网下载,下载二进制的这个 zip配置环境变量然后解...
    99+
    2023-06-28
  • [MySQL]-压力测试之Sysbench
    [MySQL]-压力测试之Sysbench 文章目录 [MySQL]-压力测试之Sysbench一、Sysbench概况1)介绍2)安装部署 二、实战1)构造测试数据2)开始运行压测结果...
    99+
    2023-09-04
    mysql 压力测试 数据库
  • JMeter对MySQL数据库进行压力测试的实现步骤
    目录一、安装并配置 JMeter下载配置环境变量导入 MySQL 驱动二、启动 JMeter三、开始进行压力测试配置观察结果总结一、安装并配置 JMeter 下载 官网下载,下载二进...
    99+
    2024-04-02
  • 怎么对Linux系统进行压力测试
    这篇文章将为大家详细讲解有关怎么对Linux系统进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、...
    99+
    2023-06-15
  • 如何进行sysbench测试
    如何进行sysbench测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sysbench支持以下几种测试模式:1、CPU运算...
    99+
    2024-04-02
  • MySQL数据库压力测试报告
      MySQL数据库压力测试报告   1     &...
    99+
    2024-04-02
  • Linux怎么进行压力测试
    这篇文章主要介绍“Linux怎么进行压力测试”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux怎么进行压力测试”文章能帮助大家解决问题。软件压力测试是一种基本的质量保证行为,它是每个重要软件测...
    99+
    2023-06-27
  • 使用mysqlslap与sysbench怎么对MySQL进行压测
    这篇文章将为大家详细讲解有关使用mysqlslap与sysbench怎么对MySQL进行压测,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。mysqlslap...
    99+
    2024-04-02
  • 【压测】通过Jemeter进行压力测试(超详细)
    文章目录 背景一、前言二、关于JMeter三、准备工作四、创建测试4.1、创建线程组4.2、配置元件4.3、构造HTTP请求4.4、添加HTTP请求头4.5、添加断言4.6、添加察看结果树4.7、添加Summary Report4....
    99+
    2023-08-16
    压力测试 java 开发语言
  • Java使用jmeter进行压力测试
    本篇文章简单讲一下使用jmeter进行压力测试。其压测思想就是 通过创建指定数量的线程,同时请求指定接口,来模拟指定数量用户同时进行某个操作的场景。 jmeter测试计划配置: 运行...
    99+
    2024-04-02
  • Go单元测试对数据库CRUD进行Mock测试
    目录前言go-sqlmock安装使用示例miniredis安装使用示例总结前言 最近在实践中也总结了一些如何用表格驱动的方式使用 gock Mock测试外部接口调用。以及怎么对GOR...
    99+
    2024-04-02
  • 数据库压力测试:揭开数据库的真面目
    压力测试的目的 评估数据库的可扩展性:确定数据库在不同负载下的处理能力,为容量规划提供依据。 识别性能瓶颈:找出数据库在高并发或大数据量场景下可能存在的性能问题,并采取措施进行优化。 确保系统稳定性:测试数据库在极端条件下的可靠性,确保...
    99+
    2024-04-02
  • Java如何使用jmeter进行压力测试
    本篇内容介绍了“Java如何使用jmeter进行压力测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jmeter测试计划配置:运行bin目...
    99+
    2023-06-20
  • Go怎么对数据库CRUD进行Mock测试
    今天小编给大家分享一下Go怎么对数据库CRUD进行Mock测试的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。go-sqlmo...
    99+
    2023-07-02
  • MySQL压力测试中如何定制sysbench的Lua模板
    本篇内容介绍了“MySQL压力测试中如何定制sysbench的Lua模板”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • mysql数据库压力测试工具mysqlslap怎么用
    这篇文章将为大家详细讲解有关mysql数据库压力测试工具mysqlslap怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysqlslap是从MySQL的5.1.4...
    99+
    2024-04-02
  • 数据库压力测试:确保您的数据库万无一失
    数据库压力测试是一种模拟真实环境中的工作负荷,以发现系统中潜在的瓶颈和问题的一种测试方法。通过压力测试,我们可以确保数据库能够在高并发、高负载的情况下正常运行,并满足业务需求。 压力测试可以分为以下几个步骤: 确定压力测试的目标 选择...
    99+
    2024-02-26
    数据库压力测试 性能测试 负载测试 并发测试 容量测试
  • 怎么对Linux的CPU、内存、IO、网络压力进行测试
    本篇内容主要讲解“怎么对Linux的CPU、内存、IO、网络压力进行测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么对Linux的CPU、内存、IO、网络...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作