使用 WARP 和 Perf 测试对 MinIO 企业对象存储进行基准测试

2024-09-04 16:12

本文主要是介绍使用 WARP 和 Perf 测试对 MinIO 企业对象存储进行基准测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AI/ML、高级分析和数据库等现代应用程序需要高性能对象存储。MinIO Enterprise Object Store 将可扩展性和高性能相结合,使每个工作负载(无论要求多么苛刻)触手可及。我们发布的基准测试表明,MinIO Enterprise Object Storage 是市面上最快的对象存储,但它的运行速度只能与您提供的硬件和网络一样快。WARP 和 Perf Test 的结果可用于跟踪一段时间内的性能,并在潜在问题发展为严重问题之前主动查明它们。

WARP 是一款开源、功能齐全的 S3 性能评估软件,用于在 WARP 客户端和对象存储主机之间进行测试。WARP 测量来自多个客户端的 MinIO 集群的 GET 和 PUT 性能。WARP 有许多选项,可通过命令行或 YAML 文件进行配置,允许您创建与工作负载一致的测试。请记住,以有意义的方式评估性能并使用代表对象存储运行真实条件的数据和工作负载进行测试,这一点绝对至关重要。

相比之下,Perf Test 是一种易于使用的自动化性能测试,可提供简化的体验和简洁的结果。我们引入了性能测试,使 MinIO Enterprise Object Storage 管理员能够使用单个命令对其 MinIO 集群运行分布式性能评估。性能测试运行 PUTS,然后运行 GETS,逐步增加负载以确定最大聚合吞吐量。测试可能需要几秒钟到几分钟的时间才能执行,具体取决于您的 MinIO 集群。

WARP 和 Perf 测试之间存在一些重要差异。WARP 是一个完整的端到端工具,可通过 WARP 客户端执行的操作来测试 MinIO 集群的性能。客户端计算机正在通过网络对对象执行到分布式 MinIO 集群的 PUT 和 GETS。这使得 WARP 成为测试预期客户端-服务器性能的出色机制。相比之下,性能测试在 MinIO 实例上运行,以对同一集群中的其他 MinIO 实例执行对象的 PUT 和 GETS。因此,Perf Test 会告诉您性能方程式的服务器端能够做什么。

WARP:完整的对象存储基准测试工具

首先,让我们来看看 WARP。WARP 是一种工具,可让您在各种条件下对 MinIO 或任何与 S3 兼容的对象存储的性能进行全面基准测试。默认情况下,WARP 将对在分布式模式下运行的 MinIO 使用的所有磁盘执行读写混合测试。在这个演示中,我们将运行 WARP 来测试在分布式模式下运行的 MinIO。WARP 位于 GitHub 存储库中,您还可以在其中找到详细的文档。首先,我们将以分布式模式部署 MinIO:一但 MinIO 启动并运行,您将能够使用 WARP 测量性能,所以让我们开始吧。

第 1 步:为 WARP 客户端再创建 4 个实例,总共 8 个实例。

请按照上一篇博客文章中的步骤部署实例,但不要配置额外的存储。运行 WARP 的实例必须足够强大,以便快速生成对象并测量 PUT 和 GET 操作,但不需要 MinIO 节点所需的存储卷。

第 2 步:在客户端上安装 WARP 并运行它。

[root@ip-172-31-19-7]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz
2024-08-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887]

[root@ip-172-31-19-7]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz
LICENSE
README.md
warp_logo.png
warp
[root@ip-172-31-19-7]# ./warp client
warp: Listening on :7761

请注意,每个 WARP 客户端都在侦听端口 7761

第 3 步:运行 WARP 并启动混合基准测试。

[root@ip-172-31-27-18]# ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --access-key=minioadmin --secret-key=minioadmin --concurrent 64 --warp-client 172.31.27.18:7761,172.31.23.81:7761,172.31.19.28:7761,172.31.19.7:7761

--host 172.31.23.237:9000,172.31.26.78:9000,172.31.26.90:9000,172.31.19.110:9000
warp: Benchmark data written to "warp-remote-2024-08-08[201339]-qymu.csv.zst"                                                                                                                                                                       
 Mixed operations.
Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s.
 * Throughput: 39.90 obj/s

Operation: GET, 45%, Concurrency: 256, Ran 1m54s.
 * Throughput: 10903.28 MiB/s, 178.64 obj/s

Operation: PUT, 15%, Concurrency: 256, Ran 1m54s.
 * Throughput: 3628.27 MiB/s, 59.45 obj/s

Operation: STAT, 30%, Concurrency: 256, Ran 1m54s.
 * Throughput: 119.98 obj/s

Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s.
warp: Cleanup done.                                                                              
 [root@ip-172-31-27-18]

您已完成使用 WARP 的基本混合模式性能测试。虽然我们使用了混合模式测试来演示 WARP,但它更符合实际使用情况。您还可以将各个操作 (GET、PUT、STAT) 拆分到它们自己的测试运行中,而不是运行混合模式测试。我们鼓励您参考文档以了解如何执行更多测试场景。例如,您可以启用 TLS 和服务器端加密来衡量它们对环境的影响。您可以通过增加并发测试的数量来增加基础设施的压力。您可以使用对象大小的随机组合,也可以指定与当前环境和工作负载匹配的对象大小。您可以将测试配置为在定义的时间段内运行或自动终止,就像我们上面所做的那样。WARP 结果显示在屏幕上,并保存到使用 zstandard 压缩的本地 CSV 文件中,该文件可用于进一步的细分或分析。

用于快速简便性能评估的性能测试

如果您不想充分利用 WARP 的全部灵活性,我们构建了一种使用 Perf Test 快速简便地测量内部 MinIO 性能的方法。Perf Test 通常在自动调整模式下运行,逐渐增加负载以确定最大聚合吞吐量。

您可以使用 mc 来运行 Perf Test:

$ mc support perf 对象

[root@ip-172-31-77-115]# ./mc support perf object myminio

    THROUGHPUT IOPS     
 PUT 2.4 GiB/s  38 objs/s 
GET 4.6 GiB/s  73 objs/s 

Perf Test: MinIO 2024-08-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads

或者,您可以从 MinIO 控制台运行 Perf Test,MinIO 控制台是基于浏览器的 GUI,用于配置、管理和报告 MinIO 集群。只需导航到“支持”菜单并单击“性能”,然后单击“开始”按钮。性能测试将运行。在测试期间,传入流量将被暂时阻止。完成后,将显示聚合 GET 和 PUT 性能以及各个节点的性能。

Warp Speed Ahead!

WARP 包含您可能希望针对对象存储运行的所有测试(GET、PUT、DELETE、LIST、STAT、RETENTION),并且测试运行可以包含自定义的对象大小组合以匹配您的工作负载。Perf Test 通过设置的测试参数运行,以快速确定最大吞吐量。虽然 WARP 需要额外的软件,但 Perf Test 包含在 MinIO 中,可以从 mc 接口或 MinIO 控制台运行。为了帮助进行故障排除,客户只需单击一下即可与 MinIO 工程师共享性能测试结果。

这篇关于使用 WARP 和 Perf 测试对 MinIO 企业对象存储进行基准测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136410

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用