使用 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

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学