本頁提供相關指引,說明如何設定 Google Cloud Managed Lustre 環境,以獲得最佳效能。
如要查看各個成效等級的具體成效數據,請參閱「成效等級」。
增加容量後的效能
增加現有執行個體的儲存空間容量,可提高其總處理量和 IOPS 上限,也可能提升中繼資料效能。
隨著新資料寫入並重新分配到額外儲存空間,讀取輸送量效能會逐步提升。寫入處理量效能立即提升。
虛擬私有雲網路最大傳輸單位 (MTU)
建立虛擬私有雲網路時,將 mtu (最大傳輸單位,或可在這個網路上傳輸的最大 IP 封包大小) 的值設為允許的最大值 8896,與預設值 1460 個位元組相比,效能最多可提升 10%。
您可以使用下列指令查看網路目前的 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。
- 使用較大的機器類型,啟用各個 VM 的 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
在 VM 上監控已設定的網路介面 (例如 eth0 和 eth1),並使用 nload 產生前往 Managed Lustre 後端的流量,直接驗證資料平衡:
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 分鐘就能完成,完成後,系統會顯示結果。視設定而定,總處理量最高可達 VM 的最大網路速度,且每 TiB 可達數千 IOPS。