本页面提供了有关配置 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 Engine或 GKE进行连接时,请按照多 NIC 步骤操作。
验证流量平衡
配置多 NIC 后,请验证数据是否正确平衡。
Compute Engine
通过在生成到 Managed Lustre 后端的流量时使用 nload 监控配置的网络接口(例如 eth0 和 eth1),直接在虚拟机上验证数据平衡:
nload -m eth0 eth1
在成功的多 NIC 配置中,所有已配置接口的出站比特率应大致相等。
GKE
通过将临时网络调试程序 Pod 部署到工作负载计划运行的节点,确认工作负载的网络流量在多个 NIC 之间实现平衡:
确定工作负载计划运行的节点:
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。