本页面介绍了如何配置 Google Cloud Managed Lustre 环境以获得最佳性能。
如需查看每个效果层级的具体效果数据,请参阅效果层级。
增加容量后的性能
增加现有实例的存储空间容量会提高其最大吞吐量和 IOPS,还可能会提高其元数据性能。
随着新数据写入并重新分布到额外的存储空间中,读取吞吐量性能会逐渐提高。写入吞吐量性能立即提升。
容量利用率高
当实例的存储空间容量利用率达到 90% 时,实例的性能可能会降低。请考虑增加 Managed Lustre 实例的容量。 在扩展之前,您可能需要申请额外的配额。
如果您看到 No space left on device 错误,但实例显示有剩余容量,请参阅No space left on device 错误。
VPC 网络最大传输单元 (MTU)
创建 VPC 网络时,将 mtu(最大传输单元,即可在此网络上传输的最大 IP 数据包的大小)的值设置为允许的最大值 8896 后,性能可提高多达 10%(与默认值 1460 字节相比)。
您可以使用以下命令查看网络的当前 MTU 值:
gcloud compute networks describe NETWORK_NAME --format="value(mtu)"
网络创建后,可以更新网络的 MTU 值,但需要注意一些重要事项。如需了解详情,请参阅更改网络的 MTU。
Compute Engine 机器类型
网络吞吐量可能会受到所选机器类型的影响。一般来说,为了获得最佳吞吐量:
- 增加 vCPU 数量。每个实例的最大出站流量带宽通常为每个 vCPU 2 Gbps,最高可达机器类型上限。
- 选择支持更高入站和出站流量限制的机器系列。例如,使用 Tier_1 网络的 C2 实例支持高达 100 Gbps 的出站流量带宽。使用 Tier_1 网络的 C3 实例支持高达 200 Gbps 的带宽。
- 使用更大的机器类型来启用每个虚拟机的 Tier_1 网络性能。
- 使用 Google 虚拟 NIC (gVNIC)。对于第 3 代及更新的机器类型,gVNIC 是唯一选择。使用 Tier_1 网络时,必须使用 gVNIC。
如需了解详情,请参阅网络带宽。
多 NIC 配置
通过使用 Lustre 的内置多轨道功能,客户端可以将网络流量条带化到多个网络接口卡(多 NIC)。这样可以聚合带宽,使高容量的 Managed Lustre 实例达到饱和状态。
如需配置多 NIC,您必须执行以下操作:
- 选择具有多个物理 NIC 的机器类型。
- 为每个 NIC 创建一个子网,并将每个 NIC 分配给其子网。
- 从 Compute Engine 或 GKE 连接时,请按照多 NIC 步骤操作。
验证流量均衡
配置多网卡后,请验证数据是否已正确分流。
Compute Engine
通过以下方式直接在虚拟机上验证数据平衡:使用 nload 监控配置的网络接口(例如 eth0 和 eth1),同时生成到 Managed Lustre 后端的流量:
nload -m eth0 eth1
在成功的多 NIC 配置中,所有已配置接口的传出比特率应大致相当。
GKE
通过将临时网络调试器 Pod 部署到工作负载所调度的节点,确认工作负载的网络流量在多个网卡之间是否均衡:
确定工作负载调度到的节点:
kubectl get pod POD_NAME -o wide将 POD_NAME 替换为您的 Pod 名称。在命令输出中,记下
NODE列中的名称。在该节点上启动网络调试器:
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 替换为上一步中的节点名称。
在输出中,分析
eth0和eth1的出站列比特率。如果配置成功,比特率大致相当。输出类似于以下内容: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按 Ctrl+C 退出调试器。
衡量单客户端性能
如需测试单个 Compute Engine 客户端的读取和写入性能,请使用 fio(灵活的 I/O 测试工具)命令行工具。
安装 fio:
Rocky 8
sudo dnf install fio -yUbuntu 20.04 和 22.04
sudo apt update sudo install fio运行以下命令:
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。