效能注意事項

本頁提供相關指引,說明如何設定 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 EngineGKE 連線時,請按照多重 NIC 的步驟操作。

驗證流量平衡

設定多重 NIC 後,請確認資料是否正確平衡。

Compute Engine

在 VM 上監控已設定的網路介面 (例如 eth0eth1),並使用 nload 產生前往 Managed Lustre 後端的流量,直接驗證資料平衡:

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 分鐘就能完成,完成後,系統會顯示結果。視設定而定,總處理量最高可達 VM 的最大網路速度,且每 TiB 可達數千 IOPS。