MinIO 是一款高性能、高度可扩展的分布式对象存储解决方案,可以直接运行在裸机上,也可以作为 Kubernetes 原生插件运行。客户经常将 MinIO 行业领先的 性能 作为其最具差异化的功能之一。我们最近添加了对自动性能测试的支持,并希望与大家分享这一消息。
在 MinIO,我们专注于性能和简单性。新的性能测试功能让存储管理员能够同时享受到这两者。只需一条命令,管理员就可以对整个 MinIO 集群运行分布式性能评估。结果可用于跟踪性能随时间的变化,并主动发现潜在问题,防止其发展成严重问题。
本文将向您展示如何使用 mc support perf
或 MinIO 控制台对 MinIO 集群进行快速性能评估。
应用程序通过 HTTP/S 和兼容 AWS S3 的 RESTful API 访问 MinIO 集群。我们开发了开源的 WARP S3 基准测试工具 来衡量一个或多个客户端到一个或多个主机上的 GET 和 PUT 性能。虽然 WARP 是一个完整的基准测试工具,但为了追求简单性,我们希望提供一个简单易用、快速提供易于解释的结果的工具。我们开发了性能测试来简化和自动化性能测试,以便您可以在潜在问题造成瓶颈之前主动识别它们。
为了帮助您充分利用 MinIO 的性能,我们准备了一些资源。您可以使用 参考硬件 和推荐的配置开始使用,并了解如何 规划和部署 MinIO 分布式模式以优化性能。
假设您有一个可供应用程序使用的小型 MinIO 集群,您希望验证您的对象存储层是否获得了最佳性能。这包括对 MinIO 集群的整体健康状况进行快速检查,然后运行性能测试。
性能测试运行 PUT,然后运行 GET,然后收集信息并呈现集群的汇总吞吐量结果。
1 获取集群状态
打开终端并使用 MinIO 客户端运行 mc admin info alias
以显示有关 MinIO 集群或单个服务器的信息。用您要测试的 MinIO 集群的别名替换 alias 。
$ mc admin info min
● all-nodes-pool-0-0.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
● all-nodes-pool-0-1.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
● all-nodes-pool-0-2.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
● all-nodes-pool-0-3.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
● all-nodes-pool-0-4.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
● all-nodes-pool-0-5.all-nodes-hl.ns-1.svc.cluster.local:9000
Uptime: 2 days
Version: 2021-11-09T03:21:45Z
Network: 6/6 OK
Drives: 10/10 OK
60 drives online, 0 drives offline
我们看到我们的集群服务器和驱动器运行正常。
在自动调整模式下运行性能测试。性能测试运行,逐步增加负载以确定最大聚合吞吐量。
$ mc support perf alias
测试将运行并在屏幕上呈现结果。测试执行时间可能从几秒到几分钟不等,具体取决于您的 MinIO 集群。标志 -v 表示详细模式。
MinIO 2021-10-10T16:53:30Z, 4 servers, 40 drives
PUT: 20 GiB/s, 161 objs/s
* http://data1:9000:, 5.0 GiB/s, 40 objs/s
* http://data2:9000:, 5.2 GiB/s, 41 objs/s
* http://data3:9000:, 4.9 GiB/s, 39 objs/s
* http://data4:9000:, 5.1 GiB/s, 40 objs/s
GET: 37 GiB/s, 295 objs/s
* http://data1:9000:, 9.7 GiB/s, 77 objs/s
* http://data2:9000:, 9.3 GiB/s, 74 objs/s
* http://data3:9000:, 8.5 GiB/s, 67 objs/s
* http://data4:9000:, 9.5 GiB/s, 75 objs/s
It 也可以从 MinIO 控制台 运行性能测试,它是用于配置、管理和报告 MinIO 集群的基于浏览器的图形界面。
在左侧的导航栏中,向下滚动到订阅,单击以显示支持选项,然后单击性能。

如果您尚未注册 MinIO 集群,系统会提示您在运行性能测试之前进行注册。

单击开始运行测试,或单击显示高级设置以自定义持续时间、对象大小和并发请求数量,然后单击开始。
性能测试结果将显示在整个集群以及各个节点上。

是时候进行测试了!
我们致力于构建高性能的对象存储,并提供您需要的工具来保持其最佳运行状态。现在您可以用一条命令评估集群性能。
您无需成为性能专家即可充分利用 MinIO。订阅 SUBNET 的公司可以与我们分享结果,以便 MinIO 工程师进行审查。SUBNET 将商业许可证(对于 AGPLv3 义务非常重要)与独特的支持模式相结合,通过 MinIO 构建的门户提供 24/7/365 的直接工程师支持,该门户将 Slack 和 Zendesk 的最佳功能融合到一个解决问题的机器中。可以将性能测试与 SUBNET 健康 结合使用,SUBNET 健康是一个自动故障排除工具,它会在您的 MinIO 实例上运行数十项检查,以确保其正常运行。
您可以通过 下载 MinIO 来试用。如果您想了解更多信息或有任何问题,请加入我们的 Slack 频道 或向我们发送邮件 hello@min.io。