你知道一些最好的人工智能模型的秘诀吗?这是他们可以访问的数据量,他们可以接受培训。对于 AI/ML 模型:快速访问数据为王。让我强调一下,这不仅仅是数据,而是快速访问的数据。如果有人可以构建更快、更强大的模型,那么你已经输掉了人工智能竞赛。
在设计 AI 基础设施组件(尤其是数据存储组件)时,当 ML 工程师和数据科学家需要存储机器学习算法并有效管理 MinIO 集群中的可用资源时,确保他们的整体体验至关重要。这确保了快速有效地构建可靠的模型,而不会成为存储基础设施的瓶颈。
AI 基础设施层中需要多个组件,这些组件不仅需要构建 AI 模型,还需要将生成的模型训练并存储在可快速访问的数据存储(如 MinIO)中。ML Ops 的世界正处于 DevOps 的交汇点,并集成了正在以极快速度生成的 ML 模型。在这篇文章中,我们将向您展示如何使用 WARP 衡量 MinIO AI 数据存储基础设施的性能。
WARP 是一款开源全功能 S3 性能评估软件,用于在 WARP 客户端和对象存储主机之间进行测试。WARP 针对 MinIO 集群测量多个客户端的 GET 和 PUT 性能。WARP 具有许多选项,可通过命令行或环境变量进行配置,允许您创建与工作负载一致的测试。我们将快速向您展示如何运行它,以便您可以开始分析您的 AI 数据存储基础设施。
运行和分析 WARP
创建 warp 客户端侦听器以运行分布式 warp 基准测试,在这里我们将它们作为跨客户端节点的有状态集运行。
kubectl apply -f https://raw.githubusercontent.com/minio/warp/master/k8s/warp.yaml
在 warp-job.yaml 中,更新 --warp-clients and --host 标志,以匹配您的集群细节。设置后,按如下方式部署
kubectl apply -f https://raw.githubusercontent.com/minio/warp/master/k8s/warp-job.yaml
WARP 作业完成后,可以在日志中找到状态
kubectl get pods -l job-name=warp-job
NAME READY STATUS RESTARTS AGE
warp-job-6xt5k 0/1 Completed 0 8m53s
~ kubectl logs warp-job-6xt5k
...
-------------------
Operation: PUT. Concurrency: 256. Hosts: 4.
* Average: 412.73 MiB/s, 12.90 obj/s (1m48.853s, starting 19:14:51 UTC)
Throughput by host:
* http://minio-0.minio.default.svc.cluster.local:9000: Avg: 101.52 MiB/s, 3.17 obj/s (2m32.632s, starting 19:14:30 UTC)
...
Aggregated Throughput, split into 108 x 1s time segments:
* Fastest: 677.1MiB/s, 21.16 obj/s (1s, starting 19:15:54 UTC)
* 50% Median: 406.4MiB/s, 12.70 obj/s (1s, starting 19:14:51 UTC)
* Slowest: 371.5MiB/s, 11.61 obj/s (1s, starting 19:15:42 UTC)
您还可以将 WARP 设置为执行分布式基准测试。这使您可以使用多个 WARP 客户端以更逼真的方式执行测试,就像现实世界中通常的情况一样。
运行 WARP 时,请确保安装客户端的节点位于专用服务器上,因为如果客户端暴露,则可能会受到 DDoS。此外,避免在生产高峰期运行 WARP,否则最终可能会陷入资源争夺的境地。
可以随机化对象大小,文件将具有“随机”大小,直至精细的对象大小。
对象示例(水平)及其大小,最大 100MB:
当结果被认为是稳定的时,也可以自动终止 WARP。为了检测稳定的设置,Warp 连续将当前数据下采样到当前时间范围内延伸的 25 个数据点。要使基准测试被视为“稳定”,25 个数据点中的最后 7 个必须在指定的百分比内。
从一段时间内的吞吐量来看,它可能看起来像这样
红框显示用于评估稳定性的窗口。盒子的高度由当前速度的阈值百分比决定。
超速前进!
我们鼓励您参阅文档,了解如何执行更多测试方案。例如,您可以启用 TLS 和服务器端加密来衡量它们在环境中的影响。可以通过增加并发测试的数量来增加基础结构的压力。您可以使用对象大小的随机组合,也可以指定与当前环境和工作负载相匹配的对象大小。您可以将测试配置为在定义的时间段内运行或自动终止,就像我们上面所做的那样。