在 Google Kubernetes Engine 上进行性能测试

如需测试 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 集群。对于高性能存储工作负载,请使用计算优化机器系列(例如 c2c3)和 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
  • ZONENETWORK 替换为您的具体部署 值。集群必须与 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)。

创建 IOR Docker 映像

构建安装了 OpenMPI 和 IOR 的容器映像。编译支持异步 I/O (AIO) 的 IOR,以获得更好的性能。

  1. 在本地创建一个名为 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