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

news2024/11/17 21:43:06

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 工程师共享性能测试结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泰克Tektronix MSO46 一款混合信号示波器

Tektronix MSO46 是一款混合信号示波器 (MSO),专为调试和分析复杂的电子电路而设计。FlexChannel 技术使每个通道输入都可以用作单个模拟通道、八个数字逻辑输入(使用 TLP058 逻辑探头)或同时使用模拟和频谱视图,每个域都有独立的…

前端进阶|一文理解柯里化的逆操作,什么是反柯里化

温故而知新 在说反柯里化之前,先来复习下柯里化的基础。之前文章,我们了解了什么是柯里化,以及柯里化的实现原理,同时我们也明白了什么情况下我们使用柯里化,详细阅读参见之前文章《前端进阶|由浅入深的理…

探索Python世界的趣味之旅:自制贪吃蛇游戏

通过本次贪吃蛇游戏的开发实践,不仅可以掌握Python编程语言的基础知识,还深入了解了游戏开发的基本流程和技术要点。这只是一个开始,Python的世界远不止于此。未来,你可以尝试开发更复杂、更有趣的游戏项目,甚至探索人…

Java详解String 字符串类以及String内存原理、StringBuilder类、StringJoiner类(附有代码+案例)

文章目录 九.String 字符串类型9.0 String概述9.1 字符串常用方法9.2 String内存图9.2.1直接赋值9.2.2new出来 9.3字符串比较9.4 字符串遍历9.4.1 统计字符串大小写及数字9.4.2 拼接字符串9.4.3字符串反转 9.5 StringBuilder类9.5.1StringBuilder 构造方法9.5.2StringBuilder常…

Spring全局异常处理HandlerExceptionResolver使用

1 引言 全局异常处理在项目中经常会用到,主要作用包括统一处理异常、提供友好的错误信息、避免应用程序崩溃、记录异常日志、避免异常信息泄露等等。下文将以实现HandlerExceptionResolver接口的方式,实现全局异常处理功能及常规用法。 2 代码 下面列…

Qt 字符串的编码方式,以及反斜杠加3个数字是什么编码\344\275\240,如何生成

Qt 字符串的编码方式 问题 总所周知,Qt的ui文件在编译时,会自动生成一个ui_xxxxx.h的头文件,打开一看,其实就是将摆放的控件new出来以及布局的代码。 只要用Qt提供的uic.exe工具,自己也可以将ui文件输出为代码文件…

day17JS-Cookle、webStorage和Promise

1. 什么是Cookle 在网页中需要向当前电脑中存储一些数据,通过cookie可以存储。 Cookie :是一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件,用于识别用户身份、跟踪用户活动、保存用户设置等。它通常包括名称、值、域名、…

云服务器+docker:还在为项目上线苦恼?一文包你解决(保姆级教程,图文并茂,万字起步!!!)

目录 Blue留言机: 学习视频以及参考资料 : 1、学习之前的必备操作: 第一步:购买服务器 选择一台免费的云服务器(包白嫖的) 配置服务器的一点说明: 查看自己是否购买成功: 第…

解决UOS开发截图时电脑滴滴声

在使用import命令截图时,电脑会伴随滴滴声,影响程序使用体验,使用 sudo rmmod pscpkr 即可解决滴滴声,这个命令每次开机,重新运行程序时都需输入,因此需要在脚本文件中自动执行,但是sudo命令需…

Tomcat8版本以上配置自定义400错误页面

问题:当请求URL包含特殊字符时,Tomcat会自动拦截并返回400状态码页面,暴露了tomcat的版本信息,这是很严重的安全漏洞。 java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义 解…

Kafka【六】Linux下安装Kafka(Zookeeper)集群

Kafka从早期的消息传输系统转型为开源分布式事件流处理平台系统,所以很多核心组件,核心操作都是基于分布式多节点的。本文这里采用三台虚拟机模拟真实物理主机搭建Zookeeper集群和kafka集群。 VMware可以使用户在一台计算机上同时运行多个操作系统&…

符合全真彩的简单完美正方形

符合全真彩的简单完美正方形,像素:4096x4096、颜色:16,777,216。 原图可透过 https://linxinglu.com/art/#245.png 访问 ,除了分辨率 4096x4096,也就是 16777216 像素,颜色数量也恰好是 16777216&#xff0…

静态字段和静态方法

1. 静态字段 1. 用static修饰的字段。 2. 实例字段在每个实例中有自己的独立”空间“,静态字段只有共享”空间“,所有实例共享该字段。 3. 使用”类名.静态字段“调用静态字段,静态字段不属于实例,是类class本身的…

四川财谷通抖音小店创新引领新风尚

在数字化浪潮的推动下,电商行业蓬勃发展,抖音小店作为新兴的电商平台,凭借其独特的社交属性和便捷的购物体验,迅速赢得了广大消费者的青睐。在众多抖音小店中,四川财谷通抖音小店以其精准定位、高质量内容、一站式服务…

iLogtail 开源两周年:社区使用调查报告

作者:玄飏 iLogtail 作为阿里云开源的可观测数据采集器,以其高效、灵活和可扩展的特性,在可观测采集、处理与分析领域受到了广泛的关注与应用。在 iLogtail 两周年之际,我们对 iLogtail 开源社区进行了一次使用调研,旨…

http连接处理(最新版)

分析http类及请求接收 基础 epoll epoll_create函数 #include <sys/epoll.h> int epoll_create(int size) 创建一个指示epoll内核事件表的文件描述符&#xff0c;该描述符将用作其他epoll系统调用的第一个参数&#xff0c;size不起作用。 epoll_ctl函数 #include …

程序设计—房屋租赁系统 项目源码31279

摘 要 在当今社会&#xff0c;随着城市化进程的不断加速&#xff0c;房屋租赁市场的需求日益增长。然而&#xff0c;传统的房屋租赁方式存在信息不对称、租房过程繁琐等问题&#xff0c;因此需要建立一套高效、便捷的房屋租赁系统来满足用户的需求。通过深入研究房屋租赁市场的…

华为 HCIP-Datacom H12-821 题库 (8)

有需要题库的可以看主页置顶 V群仅进行学习交流 1.在 DHCP 运行过程中&#xff0c;如果客户端 IP 地址在相约过去 87.5%还没有完成续约的话&#xff0c;客户将发送什么报文进行再次续约&#xff1f; A、DHCP discover 广播报文 B、DHCP release 单播报文 C、DHCP request 广播…

探索MongoDB的Python之钥:pymongo的魔力

文章目录 探索MongoDB的Python之钥&#xff1a;pymongo的魔力背景&#xff1a;为什么选择pymongo&#xff1f;简介&#xff1a;pymongo是什么&#xff1f;安装&#xff1a;如何将pymongo纳入你的项目&#xff1f;基础用法&#xff1a;五个核心函数介绍1. 连接到MongoDB2. 选择数…

基于数字孪生搭建的智慧地铁站管理平台

数字孪生技术是指通过数学模型和实时数据同步反映实体系统运行状态的数字复制品建模。在智慧地铁站管理中&#xff0c;数字孪生技术的应用使得地铁站的运营管理更加高效、智能化&#xff0c;并提升了安全性和服务质量。以下是古河云科技小编整理的数字孪生搭建的智慧地铁站管理…