性能考虑因素

本页面提供了有关配置 Google Cloud Managed Lustre 环境以获得最佳性能的指南。

如需查看特定于每个性能层级的性能数据,请参阅 性能层级

容量增加后的性能

增加现有实例的存储容量会增加其最大吞吐量和 IOPS,并可能会提高其元数据性能。

随着新数据写入并重新分布到额外的存储空间,读取吞吐量性能会逐渐提高。写入吞吐量性能会立即提高。

VPC 网络最大传输单元 (MTU)

创建 VPC 网络时,将 mtu (最大传输单元,即可在此网络上传输的最大 IP 数据包的大小) 的值设置为允许的最大值 8896 后,性能可提高多达 10%(与默认值 1460 字节相比)。

您可以使用以下命令查看网络的当前 MTU 值:

gcloud compute networks describe NETWORK_NAME --format="value(mtu)"

网络的 MTU 值可以在网络创建后更新,但有一些重要注意事项。如需了解详情,请参阅 更改网络的 MTU

Compute Engine 机器类型

网络吞吐量可能会受到您选择的机器类型的影响。一般来说,如需获得最佳吞吐量,请执行以下操作:

  • 增加 vCPU 的数量。每个实例的最大出站流量带宽通常为 2 Gbps,最高可达机器类型的上限。
  • 选择支持更高入站和出站流量限制的机器系列。例如,使用 Tier_1 网络的 C2 实例支持高达 100 Gbps 的出站流量带宽。使用 Tier_1 网络的 C3 实例支持高达 200 Gbps 的出站流量带宽。
  • 使用更大的机器 类型来启用每个虚拟机的 Tier_1 网络性能
  • 使用 Google 虚拟 NIC (gVNIC)。 gVNIC 是第 3 代及更新机器类型的唯一选择。使用 Tier_1 网络时,必须使用 gVNIC。

如需了解详情,请参阅网络带宽

多 NIC 配置

借助 Lustre 的内置多轨功能,客户端可以跨多个网络接口卡(多 NIC)条带化网络流量。这样可以聚合带宽,以饱和高容量 Managed Lustre 实例。

如需配置多 NIC,您必须:

  • 选择具有多个物理 NIC 的机器类型。
  • 为每个 NIC 创建一个子网,并将每个 NIC 分配给其子网。
  • Compute EngineGKE进行连接时,请按照多 NIC 步骤操作。

验证流量平衡

配置多 NIC 后,请验证数据是否正确平衡。

Compute Engine

通过在生成到 Managed Lustre 后端的流量时使用 nload 监控配置的网络接口(例如 eth0eth1),直接在虚拟机上验证数据平衡:

nload -m eth0 eth1

在成功的多 NIC 配置中,所有已配置接口的出站比特率应大致相等。

GKE

通过将临时网络调试程序 Pod 部署到工作负载计划运行的节点,确认工作负载的网络流量在多个 NIC 之间实现平衡:

  1. 确定工作负载计划运行的节点:

    kubectl get pod POD_NAME -o wide
    

    POD_NAME 替换为 Pod 的名称。在命令输出中,记下 NODE 列中的名称。

  2. 在该节点上启动网络调试程序:

    kubectl run multi-nic-debug --rm -i --tty --image=nicolaka/netshoot \
      --overrides='{"spec": {"hostNetwork": true, "nodeSelector": {"kubernetes.io/hostname": "NODE_NAME"}, "tolerations": [{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]}}' \
      -- /bin/bash -c "apk update && apk add nload && nload -m eth0 eth1"
    

    NODE_NAME 替换为上一步中的节点名称。

  3. 在输出中,分析 eth0eth1出站 列比特率。如果配置成功,则比特率大致相等。输出类似于以下内容:

    Device eth0 [10.1.0.50] (1/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.63 MBit/s                       Curr: 1.46 GBit/s
    Avg: 1.60 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.40 MBit/s                        Min: 1.25 GBit/s
    Max: 1.64 MBit/s                        Max: 1.47 GBit/s
    Ttl: 590.94 GByte                       Ttl: 405.19 GByte
    
    Device eth1 [172.16.15.5] (2/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.64 MBit/s                       Curr: 1.47 GBit/s
    Avg: 1.62 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.42 MBit/s                        Min: 1.26 GBit/s
    Max: 1.66 MBit/s                        Max: 1.47 GBit/s
    Ttl: 587.68 GByte                       Ttl: 406.36 GByte
    
  4. Ctrl+C 退出调试程序。

衡量单客户端性能

如需测试单个 Compute Engine 客户端的读取和写入性能,请使用 fio灵活的 I/O 测试工具)命令行工具。

  1. 安装 fio:

    Rocky 8

    sudo dnf install fio -y
    

    Ubuntu 20.04 和 22.04

    sudo apt update
    sudo install fio
    
  2. 运行以下命令:

    fio --ioengine=libaio --filesize=32G --ramp_time=2s \
    --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
    --group_reporting --directory=/lustre --buffer_compress_percentage=50 \
    --name=read --blocksize=1m --iodepth=64 --readwrite=read
    

测试大约需要 5 分钟才能完成。完成后,系统会显示结果。根据您的配置,您可以获得高达 虚拟机最大网络速度的吞吐量,以及每 TiB 数千个 IOPS。