如需测试 Google Kubernetes Engine (GKE) 工作负载在多个 GKE 客户端上的读取和写入
性能,请使用
IOR 基准测试工具。以下说明介绍了如何自动执行客户端设置,以及如何通过 Kubernetes Pod 之间基于免密 SSH 的 mpirun 使用
IOR 来测试汇总 I/O。
前提条件
已预配 Managed Lustre 实例。
已配置本地 Docker 环境,并已通过身份验证以推送到 Google Artifact Registry 或 Container Registry(请参阅 身份验证方法)。
确保网络的
mtu值已 设置为8896。
创建 GKE 集群
如需测试性能,您需要启用 Managed Lustre CSI 驱动程序的 GKE 集群。对于高性能存储工作负载,请使用计算优化机器系列(例如
c2 或 c3)和 TIER_1 网络配置 GKE 节点池。
运行以下命令以创建针对性能测试进行了优化的 Standard GKE 集群:
gcloud container clusters create CLUSTER_NAME \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--addons=LustreCsiDriver \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--network=NETWORK \
--num-nodes=NUM_NODES
将 ZONE 和 NETWORK 替换为您的具体部署 值。集群必须与 Managed Lustre 实例位于同一 VPC 网络中。
选择 MACHINE_TYPE。如需了解如何选择机器类型以获得最佳吞吐量,请参阅 性能注意事项 。
如果您的机器类型不支持 TIER_1 网络,请从命令中删除
--network-performance-configs行。指定 NUM_NODES。如需使文件系统达到饱和状态,集群的汇总网络容量应比文件系统的预配吞吐量高出约 20%。
对于启用了 Tier 1 网络的机器,单个节点可以推送 25 Gbps 到 200 Gbps(约 3,000 到 25,000 MBps),具体取决于虚拟机系列和 CPU 数量。对于标准实例,出站流量通常限制为每个 vCPU 约 2 Gbps。
例如,如果 Managed Lustre 实例容量的理论吞吐量为 100,000 MBps,则需要 120,000 MBps (
100,000 * 1.2) 的汇总客户端出站流量才能使其达到饱和状态:- 对于标准实例: 如果每个节点的公布出站流量为 2,000 MBps,则应至少预配 60 个节点 (
120,000 / 2,000)。 - 对于 Tier 1 网络: 如果每个节点的公布出站流量为 10,000 MBps(约 80 Gbps),则应至少预配 12 个节点 (
120,000 / 10,000)。
- 对于标准实例: 如果每个节点的公布出站流量为 2,000 MBps,则应至少预配 60 个节点 (
创建 IOR Docker 映像
构建安装了 OpenMPI 和 IOR 的容器映像。编译支持异步 I/O (AIO) 的 IOR,以获得更好的性能。
在本地创建一个名为
Dockerfile的文件:FROM ubuntu:22.04 # Prevent interactive prompts during installation ENV DEBIAN_FRONTEND=noninteractive # Install dependencies, SSH, and required Autotools packages RUN apt-get update && apt-get install -y \ openssh-server \ openmpi-bin \ libopenmpi-dev