設定叢集擴展

建立叢集時,請使用擴展參數來控制 Code Engine 叢集所部署的執行個體數量,以及其如何因應工作負載的變化。

所有縮放參數皆為選用,並可在建立船隊時進行設定。

Code Engine CLI 中的擴展參數

若要建立車隊,請使用 ibmcloud ce fleet run 或 ibmcloud ce fleet create 指令。 它支援以下用於艦隊縮放的選項。 如需查看所有可用命令選項的完整清單,請參閱 CLI 參考 手冊。

--scale-max

所有工作節點間並行任務槽位總數的上限。 工作節點的擴展能力最多僅能支援此數量的並發任務。 預設值為 10。

--scale-min

即使沒有待處理或正在執行的任務時,系統仍會始終預留的最小並發任務槽位數。 提供此處理能力的作業人員仍保持活躍狀態,且絕不會被自動縮減。

若因此設定而擁有活躍工作人員,但沒有待處理或正在執行的任務,該車隊的狀態即為「待機」。

必須小於或等於 --scale-max。 預設值為 0。

--scale-spare

在當前執行中任務數量之上所維持的閒置並行任務槽位數。 當所有工人都在忙碌時,車隊會增派工人以恢復備用緩衝量——最多可達 --scale-max。 當尚有閒置產能時,新任務一到便會立即開始執行,無需等待新的工作人員。

必須小於或等於 --scale-max。 預設值為 0。

--scale-down-delay

指定工作節點在完成最後一項任務後,會繼續運行多長時間,才由 Code Engine 進行縮減。 若某位工作者的上一項任務是在延遲時間窗內完成的,則當新任務一到,該工作者便會立即接手。

請指定一個正整數,表示秒數。 預設值為 0 (一旦不再需要工作節點,系統便會立即縮減其數量)。

Code Engine 控制台中的縮放參數

最大容器槽位數

所有工作節點間並行任務槽位總數的上限。 工作節點的擴展能力最多僅能支援此數量的並發任務。 預設值為 10。

最低容器槽位數

即使沒有待處理或正在執行的任務時,系統仍會始終預留的最小並發任務槽位數。 提供此處理能力的作業人員仍保持活躍狀態,且絕不會被自動縮減。

若因此設定而擁有活躍工作人員,但沒有待處理或正在執行的任務,該車隊的狀態即為「待機」。

必須小於或等於「最大容器槽位數」。 預設值為 0。

剩餘的貨櫃槽位

在當前執行中任務數量之上所維持的閒置並行任務槽位數。 當所有工人都在忙碌時,車隊會增派工人以恢復備用緩衝量——直至達到最大貨櫃槽位數為止。 當尚有閒置產能時,新任務一到便會立即開始執行,無需等待新的工作人員。

必須小於或等於「最大容器槽位數」。 預設值為 0。

縮減規模的延遲

指定工作節點在完成最後一項任務後,會繼續運行多長時間,才由 Code Engine 進行縮減。 若某位工作者的上一項任務是在延遲時間窗內完成的,則當新任務一到,該工作者便會立即接手。

請指定分鐘數。 預設值為 0 (一旦不再需要工作節點,系統便會立即縮減其數量)。

工作負載模式與相關參數

應使用哪些參數,取決於任務的產生方式、您的延遲要求,以及機隊配置的穩定性。

Code Engine CLI 中的單次批次工作負載

您在開始時便已知悉所有任務,在建立船隊時便會將這些任務分配給船隊,而當最後一項任務完成時,船隊的任務便告結束。 這是最簡單的模型,除了將 --scale-max 設定為控制並行執行的任務數量外,無需任何特殊的擴展設定。 當您需要為一組任務設定專用的叢集配置時,請採用此方法。

相關選項: --scale-max

Code Engine 控制台中的單次批次工作負載

您在開始時便已知悉所有任務,在建立船隊時便會將這些任務分配給船隊,而當最後一項任務完成時,船隊的任務便告結束。 這是最簡單的模型,除了將「最大容器槽位數」設定為控制並行執行的任務數量外,無需任何特殊的擴展配置。 當您需要為一組任務設定專用的叢集配置時,請採用此方法。

相關參數: 最大容器槽位數

Code Engine CLI 中的排程批次工作負載

您可維持一支船隊運作,並依照排程新增一批任務。 在兩個批次之間,該車隊沒有待處理的任務。 批次之間的間隔時間可預測且足夠長,以致於讓工人保持溫暖並不值得,因此使用 --scale-min、--scale-spare 或 --scale-down-delay 並無益處。 所有批次中的船隊配置均保持穩定。

相關選項: --scale-max

Code Engine 控制台中的排程批次工作負載

您可維持一支船隊運作,並依照排程新增一批任務。 在兩個批次之間,該車隊沒有待處理的任務。 批次之間的間隔既可預測且時間足夠長,以致於不值得花費精力讓工人保持溫暖,因此使用「最低容器槽位」、「備用容器槽位」或「縮減規模延遲」皆無益處。 所有批次中的船隊配置均保持穩定。

相關參數: 最大容器槽位數

Code Engine CLI 中的持續性、對延遲敏感的工作負載

任務會在一天中的不同時間以難以預料的方式出現——由使用者操作、感測器讀數或其他即時事件觸發。 若每次有任務送達時都必須等待新工作程序啟動,將會造成無法接受的延遲。 相反地,應將工作群組設定為維持一組待命的「暖機」工作者,以便任務能立即啟動。

相關選項: --scale-max、--scale-min、--scale-spare、--scale-down-delay

  • 請使用 --scale-max 來定義可配置的容器槽位最大數量。 您的叢集會根據工作負載需求,擴展至此同時執行數上限。
  • 使用 --scale-min 可確保基礎工作程序池始終處於運行狀態,即使隊列中沒有任何任務時亦然。 當流量可能在一段時間內降至零,但您仍希望在流量恢復時能立即啟動時,請使用此選項。
  • 使用 --scale-spare ,可確保保留的可用任務槽位數量多於當前正在執行的任務數量。 當任務送達時,系統會立即在已運行的工作節點上開始處理,同時工作節點群會在後台調配更多工作節點,以補充閒置運算能力。
  • 使用 --scale-down-delay ,以防止工作執行者在最後一項任務完成後立即縮減規模。 當任務以間歇性方式抵達且彼此之間存在暫時空檔時,此設定能發揮作用,讓工作者保持待命狀態,並避免不必要的縮減與擴充週期。 讓工作程序保持「暖機」狀態,可縮短任務啟動延遲、將工作程序初始化的開銷降至最低,並降低反覆配置新工作程序的成本。

Code Engine 控制台中的連續性、對延遲敏感的工作負載

任務會在一天中的不同時間以難以預料的方式出現——由使用者操作、感測器讀數或其他即時事件觸發。 若每次有任務送達時都必須等待新工作程序啟動,將會造成無法接受的延遲。 相反地,應將工作群組設定為維持一組待命的「暖機」工作者,以便任務能立即啟動。

相關參數: 最大容器槽位數、最小容器槽位數、備用容器槽位數、縮減規模延遲

  • 使用「最大容器槽位數」來定義可配置的容器槽位最大數量。 您的叢集會根據工作負載需求,擴展至此同時執行數上限。
  • 使用「最小容器槽位」來確保基礎工作節點池始終處於運行狀態,即使隊列中沒有任何任務時亦然。 當流量可能在一段時間內降至零,但您仍希望在流量恢復時能立即啟動時,請使用此選項。
  • 利用「備用容器槽位」,確保可用的自由任務槽位數量多於當前正在執行的任務數量。 當任務送達時,系統會立即在已運行的工作節點上開始處理,同時工作節點群會在後台調配更多工作節點,以補充閒置運算能力。
  • 使用「縮減延遲」功能,可防止工作器在最後一項任務完成後立即縮減規模。 當任務以間歇性方式抵達且彼此之間存在暫時空檔時,此設定能發揮作用,讓工作者保持待命狀態,並避免不必要的縮減與擴充週期。 讓工作程序保持「暖機」狀態,可縮短任務啟動延遲、將工作程序初始化的開銷降至最低,並降低反覆配置新工作程序的成本。