共用方式為


OpenShift 虛擬化虛擬機部署的最佳實務

本文件提供在 Azure Red Hat OpenShift 上使用 OpenShift 虛擬化部署虛擬機(VM)時,優化效能與成本效益的指引。 本指南同時針對應用程式效能的疑慮,並提供可行的部署步驟。

優化方法

備註

目前 Azure 上的 OpenShift 虛擬化不支援依賴 GPU 的工作負載。 請依此規劃你的部署。

優化虛擬機部署始於了解您的應用程式工作負載,並相應調整基礎架構選擇。 Azure Boost 機器上的 OpenShift 虛擬化部署,也就是叢集的工作節點,相較於原生虛擬機或 Pod 部署,會帶來架構上的負擔。 容量與績效規劃應考慮這些開銷。

工作負載識別

在配置虛擬機之前,先將你的工作負載分類,以判斷它們的效能和資源需求。 常見的工作負載類型包括:

  • 一般用途: 網頁伺服器、應用伺服器、內容管理系統。
  • 資料庫: 關聯式與 NoSQL 資料庫需要一致的 IOPS 與記憶體。
  • 即時分析: 低延遲的資料處理、操作性儀表板。
  • AI/ML: 運算密集型工作負載,需要高 CPU/GPU 和記憶體。
  • 資料串流與訊息傳遞: 高吞吐量、低延遲的事件驅動架構。
  • 批次處理: 定期或按需處理大量資料的工作。
  • 高效能運算(HPC): 科學模擬、財務建模。
  • 邊緣計算與物聯網:彙總並處理來自分散式感測器的資料。
  • 媒體處理: 影片編碼/解碼、影像轉換、串流。
  • 開發/測試環境: 開發與測試的臨時環境。

每種工作負載類型都有其獨特特性,會影響虛擬機大小、儲存配置及效能調整策略。

正確調整應用程式工作負載規模

尺寸調整的關鍵考量

  • 最低核心要求: OpenShift 虛擬化至少需要八(8)個 Azure VM 來供 OpenShift 工作節點使用。
  • 建築開銷: 效能可能會因環境配置時的架構決策而異,包括實例類型、儲存空間及網路特性。
  • 擴展對於需求高的工作負載,透過增加更多節點來擴展 Azure Red Hat OpenShift 叢集,有助於克服資源爭用並維持吞吐量。
  • 評估你的工作負載: 避免僅依賴本地規模參考;對自己的工作負載進行基準測試,以協助調整合適的尺寸。
  • 成本因素: 請考慮 Azure 的運算成本、OpenShift 授權、虛擬機授權及可擴展性需求。

適當的規模配置確保虛擬機配置有足夠的資源,以達成效能目標,且不會過度配置。 此流程在雲端環境中尤為關鍵,資源效率直接影響成本與效能。

調整工作負載至適當大小的步驟

  1. 定義健康指標

    • CPU 使用率:目標為 60–70% 平均使用率。
    • 記憶體壓力:監控交換使用率、記憶體飽和度及頁面錯誤。
    • IO 壓力:測量磁碟延遲、吞吐量及隊列深度。
  2. 設定監控

    • 使用 Prometheus 和 Grafana 進行即時指標收集與視覺化。
    • 啟用 KubeVirt 指標以獲取虛擬機層級的洞察。
    • 透過 Azure Arc 整合 Azure Monitor,將基礎設施層級的指標與應用程式效能相關聯。
  3. 分析歷史資料

    • 檢視長期的績效趨勢。
    • 識別使用高峰期及資源飽和事件。
    • 利用歷史基線來指導未來的自動縮放決策。
  4. 調整虛擬機規格

    • 根據觀察到的指標,從 Dsv5 或 Dsv6 系列中選擇適當的虛擬機大小。
    • 請考慮 CPU、記憶體、磁碟 IOPS 以及網路吞吐量的需求。
    • 避免資源過度配置,方法是將資源與實際使用模式對齊。
    • 請參閱 Red Hat 關於正確調整規模的指引—— 宣布正確調整 OpenShift 虛擬化的規模 | Red Hat 開發者。
  5. 測試與驗證

    • 使用像 Apache JMeter、Locust 或 stress-ng 這類工具進行負載測試。
    • 根據明確的健康指標與績效目標進行驗證。
    • 反覆修改設定並重新測試以確認改進。

微調你的環境

微調您的 OpenShift 虛擬化環境對於達到最佳效能至關重要,尤其對於高負載工作。 以下最佳實務源自於廣泛的基準測試與 Azure Boost VM 系列(Dsv5/Dsv6)實務經驗。

效能最佳化策略

  • 針對高負載擴展或擴充: 增加更多節點或將 Azure Red Hat OpenShift 叢集中的節點擴充,以應付高並發或資源密集型的應用。
  • 避免嚴格的資源限制: 虛擬機只設訪客記憶體;除非治理需要,否則避免嚴格的資源限制。
  • 調整儲存與網路配置: 選擇符合你工作負載需求的儲存解決方案與效能層級。 對於網路密集型工作負載,調整 NAPI 與多排列等設定,並監控吞吐量與延遲。
  • 定期監控與基準測試: 使用 Prometheus、Grafana 和 Azure Monitor 來追蹤關鍵指標。 對自己的工作負載進行基準測試,以驗證效能並引導進一步調整。
  • 預期會有架構負擔: 規劃容量並設定相應的期望,特別是對於高 I/O 或網路需求的工作負載。

VM 超額分配調整

OpenShift 虛擬化運算子允許你調整 CPU 與記憶體的過度承諾比率,讓你分配的虛擬資源比實體可用的還多。 此變更可提升密度與資源利用率,但可能增加競爭並影響績效。

過度承諾調音的最佳實務:

  • 對生產工作負載使用保守的過度承諾。
  • 請考慮在開發/測試環境中進行資源過量配置。
  • 監控資源使用並視需要調整比例。

更多資訊請參閱 「配置更高的虛擬機工作負載密度」

基於基準測試的最佳做法

  • 資料庫工作負載: 避免同時設定虛擬機的資源請求和限制。 使用快速儲存和高並發時,請密切監控效能。 擴展叢集節點以部署大型資料庫。
  • 網路工作負載: 調整網路設定以達到最佳吞吐量。 根據需要擴展,以達到所需的網路吞吐量。

儲存解決方案調校

  • OpenShift 資料基金會(ODF): 使用 SSD 備份的儲存裝置以進行低延遲存取。 根據工作負載需求配置複製與擦除碼政策。 為了避免應用程式運算資源的競爭,可以考慮為 ODF 建立一個較小的 Azure VM 工作池,Ds16v5 是個不錯的起點,並使用污染/容忍措施確保 ODF 是唯一排程工作負載。 監控儲存效能並視需要調整複寫因子。
  • Azure NetApp Files (ANF): 根據 IOPS 和吞吐量需求選擇效能層級。 確保安裝方式和網路配置正確,才能達到最佳效能。 使用磁碟快照與備份來支援資料保護與復原策略。

OpenShift Virtualization for Azure Red Hat OpenShift.