盡量提高叢集和作業的彈性和效率
本頁面提供最佳做法和排程策略,協助您設計彈性的 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,避免尖峰時段。
後續步驟
- 瞭解如何優先使用彈性 VM 的 VM 類型。
- 瞭解如何設定 AutoZone 刊登位置。
- 瞭解如何建立部分叢集。
- 瞭解如何設定自動調度資源政策。
- 進一步瞭解承諾使用折扣。