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

相关文章

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字