Google Kubernetes Engine (GKE) 提供高效能、可擴充的平台,適用於高效能運算 (HPC) 工作負載。如要達到高效能和作業效率,可以使用 GKE 提供的基礎架構 (例如 HPC 專用 VM 系列),針對工作負載進行最佳化。這份文件列出管理基礎架構和工作負載的最佳做法,協助您在 GKE 上執行 HPC 應用程式時,達到最佳成本效益。
如要全面瞭解所有 GKE 最佳做法,請參閱「GKE 最佳做法」。基礎架構和節點設定
本節說明為 HPC 工作負載設定基礎架構和 GKE 節點的最佳做法。
選擇 H4D VM,處理耗用大量運算資源的工作負載
為應用程式選取合適的硬體。H4D VM 旨在盡量提高運算密集型 HPC 應用程式的處理量。H4D VM 提供高效能、低成本,且可擴充多節點工作負載。H4D 屬於運算最佳化機器系列,提供運算最佳化執行個體,非常適合運算密集型和 HPC 工作負載。
如要進一步瞭解 H4D 機器系列,請參閱「運算最佳化機器家族:H4D 機器系列」。
如需建立 HPC 最佳化 GKE 叢集的說明,請參閱「使用 H4D 執行高效能運算工作負載」。
考量節點可分配資源
瞭解節點的總資源容量與可分配給工作負載的資源之間的差異。GKE 節點會執行系統元件 (例如 kubelet 和容器執行階段),這些元件需要資源才能運作。GKE 會預留預先定義的資源量,以確保系統功能和節點可靠性。瞭解工作負載的實際資源分配量 (VM 大小減去 GKE 保留的容量),有助於為 HPC 工作負載適當調整資源要求大小。
詳情請參閱下列資源:
- GKE 說明文件:規劃節點大小:檢查節點上的可分配資源。
- Kubernetes 說明文件:為系統 Daemon 保留運算資源。
保留核心以減少搶占
如果工作負載使用節點上所有可用的實體核心,可能會與對延遲時間敏感的系統 Daemon 競爭。這種爭用可能會導致頻繁搶占,也就是 OS 排程器中斷 HPC 工作負載來執行系統工作,進而降低效能。
為維持效能,請避免將所有可用的 CPU 分配給工作負載。基本系統程序需要少量 CPU 負荷才能正常運作。如果將 100% 的運算能力分配給工作負載,會與這些系統元件產生資源競爭,進而降低效能。舉例來說,如果是 H4D 機器類型,為維持效能,請將工作負載設定為使用少於 192 個 CPU。
叢集和工作負載設定
本節說明設定 GKE 叢集和部署 HPC 工作負載的最佳做法。
使用 Cluster Toolkit 建立叢集
使用 Cluster Toolkit 簡化在 GKE 上部署及管理 HPC 工作負載的作業。這個工具包提供參考設計藍圖,其中納入在高效能環境中設定運算、儲存空間和網路資源的最佳做法。
如需使用 Cluster Toolkit 建立 H4D 叢集的說明,請參閱「使用 H4D 執行高效能運算工作負載」。
使用彈性啟動管理容量
對於用量飆升 (動態) 或時間不敏感的 HPC 工作負載,如果 H4D 隨選或預留容量無法使用,請使用彈性啟動功能來強化容量管理。彈性啟動會管理 H4D 節點的生命週期,並協助解決突發或時效性資源需求。
詳情請參閱「建立具備彈性啟動功能的 H4D 叢集」。
對緊耦合的工作負載使用密集配置政策
針對容易受到延遲時間影響的緊耦合 HPC 工作負載,導入密集配置政策。這項政策可確保所有 Pod 都在主機上彼此靠近佈建。這項設定可將節點間的網路延遲降至最低,對於依賴節點間通訊的應用程式而言至關重要。
如要使用 gcloud CLI 建立 H4D 叢集 (如「使用 H4D 執行高效能運算工作負載」一文所述),GKE 會自動設定緊湊放置政策。如果您使用 Cluster Toolkit,系統也會自動設定這項政策。如要為其他節點類型手動設定密集配置,請參閱「為 GKE 節點定義密集配置」。
設定適當的資源要求
在調整 HPC 工作大小前,請先檢查節點上實際可分配的 CPU。使用 kubectl get node 指令查看可分配的資源。確認作業的 CPU 需求量未超過 GKE 系統預留量後,GKE 可用的 CPU 數量。
GKE 提供多項功能,可協助分析及自動調整資源要求。詳情請參閱「找出佈建不足和過度佈建的工作負載」。
將整個節點專用於單一工作負載
設定 MPI 工作,佔用整個 H4D 節點。H4D 執行個體會佈建為全主機 VM。這項策略會保留節點的大部分容量,確保工作負載受到隔離。使用容器資源要求或 Pod 反相依性,確保副本不會落在相同實體節點上。
為 H4D VM 啟用 Cloud RDMA,享受高速網路
如果您使用 H4D VM,請設定部署資訊清單,為 Pod 啟用 Cloud RDMA。這項設定可確保高速 RDMA 網路介面正確公開給容器化工作負載。如需操作說明,請參閱「設定 RDMA 的資訊清單」。
最佳做法摘要
下表彙整本文建議的最佳做法:
| 主題 | 工作 |
|---|---|
| 基礎架構和節點設定 | 選擇 H4D VM 處理耗用大量運算資源的工作負載 |
| 基礎架構和節點設定 | 考量節點可分配資源 |
| 基礎架構和節點設定 | 保留核心以減少搶占 |
| 叢集和工作負載設定 | 使用 Cluster Toolkit 建立叢集 |
| 叢集和工作負載設定 | 使用彈性啟動管理容量 |
| 叢集和工作負載設定 | 將密集配置政策用於緊耦合工作負載 |
| 叢集和工作負載設定 | 設定適當的資源要求 |
| 叢集和工作負載設定 | 將整個節點專用於單一工作負載 |
| 叢集和工作負載設定 | 為 H4D VM 啟用 Cloud RDMA,享受高速網路 |