首页 > 其他分享 >rados bench性能测试工具介绍

rados bench性能测试工具介绍

时间:2024-08-28 10:06:41浏览次数:3  
标签:16 -- MB 写入 bench write rados 测试 测试工具

rados bench性能测试工具介绍

  1. radosbench介绍
    Ceph 包含 rados bench 命令,用于在 RADOS 存储群集上执行性能基准测试。命令将执行写入测试,以及两种类型的读测试。在测试读取和写入性能时,--no-cleanup 选项非常重要。默认情况下,rados bench 命令会删除它写入存储池的对象。保留这些对象后,可以使用两个读取测试来测量顺序读取和随机读取的性能。

  2. 命令及参数

  • 读写命令
rados bench -p <pool_name> <run_time> <mode> [options]
  • 必选参数定义

    • pool_name:测试操作的池名字。
    • run_time:测试持续时长(单位为秒)。
    • mode:测试模式。取值有 write、seq 和 rand。其中 write 是写(Rados 没有顺序写或随机写之分),seq 和 rand 分别表示顺序读和随机读。
  • options其他参数

    • -c:Ceph 配置文件路径。如果使用的不是默认的 Ceph 配置文件 /etc/ceph/ceph.conf,则需要指定。
    • -b:write 模式中操作的块大小(block size),单位字节。默认为 4194304(4 MB)。
    • -O:write 模式中操作的对象大小(object size),单位字节。默认等于 -b。
    • --max-objects:write 模式中的最大的对象数量。设定此参数后,写到最大数量测试就会停止(可能会超出一些),否则会继续执行直到达到 seconds 时间。
    • -t:并发操作数。默认为 16。
    • --no-cleanup:write 模式中,在写入测试完成后删除不测试数据。不加此参数时,write 测试完成后测试数据会被删除,如果后面还要进行读测试的话,需要加这个参数保留数据。
    • -f:执行输出的格式。取值有 plain(默认)、json 和 json-pretty。
    • --run-name:本次测试的名字,这个名字和测试时拼接的 key 名字有关。默认为 “benchmark_last_metadata”。
    • --reuse-bench:write 模式中复用上一次的测试对象。不同的测试会有不同的对象前缀,加这个参数以后还用上一次的前缀,但前提是上一次测试加了 --no-cleanup 参数。
    • --show-time:在每一条输出前都加上日期/时间 data/time 前缀。
    • --no-verify:读对象的时候不验证内容。
    • --write-object:指定向对象中写入的内容。
    • --write-omap:指定向 omap 中写入的内容。
    • --write-xattr:指定向 extended attributes 中写入的内容。
  • 清理数据

如果我们在写测试中添加了 --no-cleanup 参数不清理数据,那么后面当我们不需要的时候,还需要使用子命令 cleanup 来删除这些数据:

rados cleanup [--run-name run_name] [--prefix prefix]
  • --run-name :写入测试时如果添加了这个参数,这里要添加一样的。默认也是 “benchmark_last_metadata”。
  • --prefix:要清理对象的前缀。

每次进行写入测试的时候,写入的对象都会有一个前缀,例如 benchmark_data_myhostname_3742558,前面是固定的 benchmark_data_,中间是机器的 host 名字,末尾是一串数字(看着应该是跟时间有关,因为可以排序),这个前缀会在 write 测试时会打印出来。

当多次执行带有 --no-cleanup 的写入测试后,池里就会存在很多个不同的前缀的对象。可以通过指定前缀,清理特定某一次测试写入的数据。如果不指定前缀,则默认清理最后一次写入测试的数据。

  1. 结果分析
  • 命令执行情况
ceph@node2:/$ rados bench -p rbd  1200  write -b 40960 -t 16  --no-cleanup
/*参数说明*/
hints = 1
Maintaining 16 concurrent writes of 40960 bytes to objects of size 40960 for up to 1200 seconds or 0 objects
/*对象前缀*/
Object prefix: benchmark_data_node2_139690
/*实时打印性能数据*/
  sec Cur ops   started  finished  avg MB/s  cur MB/s last lat(s)  avg lat(s)
    0       0         0         0         0         0           -           0
    1      16      1844      1828   71.4017   71.4062  0.00784974  0.00871787
    2      16      3701      3685   71.9665   72.5391  0.00709388  0.00866239
    3      16      5441      5425   70.6316   67.9688   0.0146895  0.00883316
    4      16      7007      6991   68.2651   61.1719   0.0136184  0.00913108
    5      16      8538      8522   66.5717   59.8047  0.00318715  0.00935557
    6      16      9344      9328   60.7231   31.4844   0.0190202   0.0102398
    7      16      9977      9961   55.5803   24.7266    0.010927   0.0112053
    8      16     10518     10502   51.2741   21.1328   0.0439235   0.0121624
    9      16     11280     11264   48.8839   29.7656   0.0717894   0.0127303
   10      16     12045     12029   46.9835   29.8828  0.00995933   0.0132811
   11      16     12918     12902    45.812   34.1016   0.0134464    0.013624
   12      16     13815     13799   44.9139   35.0391  0.00909432   0.0138991
   13      16     14640     14624   43.9377   32.2266  0.00318153   0.0141421
   14      16     15278     15262   42.5792   24.9219   0.0183044   0.0146673

示例中是写数据的bench数据结果。每列的含义如下:

  • sec:当前执行的秒数。

  • Cur ops:当前的并发操作数。这个值一般就是 -t 的值,可能小一点(跟执行情况有关)。

  • started:截至当前的已经开始写入的对象数。

  • finished:截至当前的已经完成写入的对象数。

  • avg MB/s:平均带宽。单位 MB/s。

  • cur MB/s:当前带宽。单位 MB/s。

  • last lat(s):当前延迟。单位秒。

  • avg lat(s):平均延迟。单位秒。

  • 最终性能结果:

Total time run:         1200.02
Total writes made:      1443431
Write size:             40960
Object size:            40960
Bandwidth (MB/sec):     46.9861
Stddev Bandwidth:       15.8027
Max bandwidth (MB/sec): 73.4375
Min bandwidth (MB/sec): 0
Average IOPS:           1202
Stddev IOPS:            404.55
Max IOPS:               1880
Min IOPS:               0
Average Latency(s):     0.0132992
Stddev Latency(s):      0.0341294
Max latency(s):         4.61661
Min latency(s):         0.00265286
  • Total time run:总测试运行时间。
  • Total writes made:总测试写入对象数。
  • Write size:写入时的 block 大小。单位字节。
  • Object size:写入时的对象大小。单位字节。
  • Bandwidth (MB/sec):平均带宽。单位 MB/sec。
  • Stddev Bandwidth:带宽标准差。
  • Max bandwidth (MB/sec):最大带宽。单位 MB/sec。
  • Min bandwidth (MB/sec):最小带宽。单位 MB/sec。
  • Average IOPS:平均 IOPS。
  • Stddev IOPS:IOPS 标准差。
  • Max IOPS:最大 IOPS。
  • Min IOPS:最小 IOPS。
  • Average Latency(s):平均延迟。单位秒。
  • Stddev Latency(s):延迟标准差。单位秒。
  • Max latency(s):最大延迟。单位秒。
  • Min latency(s):最小延迟。单位秒。
  1. 总结
    radosbench是一个可以直接往存储池进行压测数据的工具,绕过了前段的文件、对象、块等协议层的处理。适用于预埋数据,以及测试osd性能等场景。

标签:16,--,MB,写入,bench,write,rados,测试,测试工具
From: https://www.cnblogs.com/whutao/p/18384020

相关文章

  • 对于初创电商公司来说,选择API测试工具时应该考虑哪些因素?
    成本效益:初创公司通常预算有限,因此需要考虑工具的购买成本或订阅费用。寻找提供免费版本或社区版的工具,这些版本可能已经满足基本需求。易用性:选择学习曲线较低的工具,以便团队成员可以快速上手。界面友好和直观的工具可以减少培训时间和成本。功能性:确保所选工具支持所需......
  • 好用的电商API接口测试工具有什么推荐吗?
    电商API接口测试工具推荐:提升开发效率,保障数据质量在电商领域,API接口的稳定性和可靠性至关重要。选择合适的测试工具可以帮助开发者快速发现问题,优化接口性能,从而提升用户体验和业务效率。本文将推荐几款好用的电商API接口测试工具,并探讨它们的特点和优势。一、PostmanPostman......
  • LogicBench: Towards Systematic Evaluation of Logical Reasoning Ability of Large
    本文是LLM系列文章,针对《LogicBench:TowardsSystematicEvaluationofLogicalReasoningAbilityofLargeLanguageModels》的翻译。LogicBench:大型语言模型逻辑推理能力的系统评价摘要1引言2相关工作3LogicBench4结果和分析5结论局限性摘要最近......
  • 使用uvm_config_db 分层Testbench配置
    前言 对于刚接触验证方法或正在采用uvm的工程师,本文重点介绍uvm配置机制"uvm_config_db",它有助于在分层测试台组件之间传递不同的类属性。通过使用示例,本文解释了uvm_config_db的用法、技术和局限性。介绍 为满足当今验证架构的需求,有必要对组件进行分层设置,以便在不......
  • 基准测试工具JMH
    概述JavaMicrobenchmarkHarness,简称JMH,由OpenJDK开发,用来构建、运行和分析Java或其他JVM语言代码的微基准测试框架。适合于方法级别的细粒度测试,并不适用于系统之间的链路测试。为什么需要JMH,也就是需求产生死码消除:所谓死码,是指注释的代码,不可达的代码块,可达但不被使用的代......
  • 大型语言模型基准测试(LLM Benchmarks):理解语言模型性能
    我们今天来看一下大模型的基准测试,现在很多主流大模型,比如GPT-4、Claude3和GeminiUltra等,对于大模型的测试,因其多功能性和非确定性特性,使得评估它们的性能成为一个挑战。LLM的基准测试提供了一种标准化和严谨的框架,用于衡量这些模型在核心语言处理任务上的表现。理解这些基准......
  • Geekbench AI 1.0 是一项全新基准,用于测试您的 PC 是否能处理复杂的 AI 任务
    GeekbenchAI1.0是一款尖端工具,可以让您评估设备处理AI任务的性能。这个基准测试软件专门设计用于测试设备的CPU、GPU和NPU在处理高要求的AI负载时的表现,给您一个清晰的答案,了解您的硬件是否能够跟上当今AI驱动的应用需求。GeekbenchAI1.0评估什么?GeekbenchA......
  • 超硬核!一篇文章说全、说全磁盘性能测试工具-Fio
    Part1 什么是FioFio(FlexibleI/OTester)是一款由Axboe开发的一款开源磁盘I/O性能测试工具,目前支持Linux及Windows平台,目前已发布的最新版本为3.37。Fio允许你生成许多线程或进程,执行指定的特定类型的I/O操作来模拟不同的I/O负载场景。Fio官方网站:https://fio.readthedoc......
  • 基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
    目录1.算法运行效果图预览2.算法运行软件版本3.部分程序4.算法理论概述5.算法完整程序工程1.算法运行效果图预览(完整程序运行后无水印)将FPGA的仿真结果导入到MATLAB中,分别得到MATLAB的结果和FPGA的结果:2.算法运行软件版本vivado2019.2matlab2022a3.部分程序......
  • Workbench开发指南:仿真流程集成
    Workbench框架提供访问数据集成应用程序的接口,用户可以使用Python脚本功能去访问接口,执行目标组件程序的脚本命令,实现仿真流程定制和集成。1、Workbench框架概述数据集成(Data-integrated)应用程序,如MechanicalAPDL、Fluent、CFX、DM、SCDM、Mechanical等,都是独立于Workbenc......