盡量提高叢集和作業的彈性和效率

本頁面提供最佳做法和排程策略,協助您設計彈性的 Managed Service for Apache Spark 叢集,盡可能在各 Cloud de Confiance by S3NS 區域取得資源、縮短佈建延遲時間,並充分利用效能和成本最佳化功能。

資源取得能力總覽

在彈性不足的 Managed Service for Apache Spark 叢集上執行工作,會造成單一故障點,導致工作中斷,以及因區域性無法使用或佈建延遲而發生叢集和工作失敗。

如果叢集設定了下列任何一種嚴格的反模式,資源無法使用的風險就會很高:

  • 固定區域放置位置:使用 zone 旗標或欄位硬式編碼單一區域,而不是允許 Managed Service for Apache Spark AutoZone 將叢集動態放置在最佳區域。這種反模式會導致叢集無法使用相鄰可用區的運算資源。
  • 每個節點角色使用單一機型或世代:將節點角色限制為單一機型或世代。這種反模式會導致叢集無法改用替代方案。
  • 垂直調度資源,減少大型 VM 數量:垂直調度叢集資源,改用少量大型 VM。這種反模式會限制排程彈性。
  • 叢集建立作業必須一次完成:要求所有 worker 節點同時佈建,而不是使用部分叢集建立作業搭配自動調度資源。如果因資源暫時無法使用而無法分配 worker 節點,這種反模式會導致叢集建立作業失敗。
  • 排程尖峰:在尖峰使用時段觸發大型批次管道,導致區域爭用增加。

資源取得能力是指設計工作時,要能彈性運用硬體、跨多個可用區,並具備擴充性。將叢集與嚴格的設定解除連結,並啟用多機器系列的回溯機制,即可提高建立成功率、縮短啟動延遲時間,並持續達到服務等級協議。

資源取得建議

採用下列最佳化做法,提升資源可用性和工作穩定性:

使用彈性 VM

彈性 VM 功能可讓您為主要、主要和次要工作站節點指定 VM 類型排名清單。這項功能會評估列出的 VM 類型,並自動選取有可用容量的區域,提高建立叢集的成功率。

建議:使用可彈性調整的 VM,並覆寫磁碟,這樣就能在同一叢集政策中,為不同的候選機器家族指定不同的磁碟類型,例如 Hyperdisk 和永久磁碟。您也可以在單一政策中混合使用第 2 代和第 4 代機器家族,在更廣泛的集區中擴展工作,並略過容量限制。

如果工作使用 N2 和 N2D 機器,請考慮下列排名:

  • 等級 0:N2、N2D
  • 第 1 級:N4、N4D (搭配 Hyperdisk Balanced)
  • 第 2 級:C4、C4D、C3、C3D (搭配 Hyperdisk Balanced)。本機 SSD 可搭配 C4 和 C4D 使用,但通常 8 或 16 個核心僅支援 1 到 2 個本機 SSD。
  • 等級 3:E2 (效能較低,僅在必要時使用)

舉例來說,如果工作使用 n2d-standard-16,排名如下:

  • 等級 0: n2d-standard-16、n2-standard-16
  • 第 1 級: n4-standard-16、n4d-standard-16
  • 第 2 級: c4-standard-16、c4d-standard-16、c3-standard-22、c3d-standard-16
  • 第 3 名: e2-standard-16

使用彈性 VM 時,請考量下列因素:

  • 支援混合磁碟類型:第 3 代和第 4 代機型僅支援 Hyperdisk 磁碟類型,不支援永久磁碟類型。混合使用第 2 代和第 4 代時,請在 instanceFlexibilityPolicy 中為每個執行個體選取項目指定 diskConfig。詳情請參閱「磁碟覆寫」。

    • 使用 Hyperdisk Balanced 時,IOPS 和輸送量基準值請參閱這篇文章。
  • 資源配額:定義具有備援類型的彈性 VM 政策時,Compute Engine 會檢查區域中所有候選類型和磁碟的配額。請確認專案已為所有設定項目分配足夠的運算和磁碟配額。

  • Compute Engine 折扣:善用彈性承諾使用折扣 (CUD),在多個 VM 系列和區域套用以支出為準的節省金額。

  • 價格:使用 Cloud de Confiance Pricing Calculator 比較政策中各等級的費用。

如需設定範本和部署範例,請參閱:

使用自動選擇可用區位置功能

使用 AutoZone placement,讓 Managed Service for Apache Spark 選取最佳區域來佈建資源。如果您使用自訂虛擬私有雲 (VPC) 網路,請確保子網路在所有區域都有足夠的 IP 位址。

使用較小的機器類型

設計工作時,請在較小的機器類型 (4、8 或 16 個核心) 中進行水平擴充,而不是使用較大的 VM 進行垂直擴充。較小的 VM 大小在各個可用區的可用性較高,有助於避免建立延遲。

  • 檢查並重新設計使用大型機器類型做為驅動程式節點的作業。
  • 查看只執行驅動程式節點,而不執行工作節點的工作 (單一節點叢集)。在單一節點叢集上執行的工作無法動態擴充,且執行作業會繫結至單一實體主機。

使用叢集自動調度資源

使用叢集自動調度資源功能,並設定足夠的執行個體數量上限,以管理資源變動 (尖峰) 的工作容量。

使用部分叢集建立作業搭配自動調度資源

使用部分叢集建立作業,指定主要 worker 數量下限,並啟用自動調度資源。如果叢集啟動時的 worker 數量少於要求,自動調度資源功能會在資源可用時動態新增更多 worker。

在離峰時段排定工作

在離峰時段 (例如中午和週末) 安排工作。安排在非標準時間,例如 10:07 而非 10:00,避免尖峰時段。

後續步驟