使用 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使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完