設定叢集擴展
建立叢集時,請使用擴展參數來控制 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 控制台中的連續性、對延遲敏感的工作負載
任務會在一天中的不同時間以難以預料的方式出現——由使用者操作、感測器讀數或其他即時事件觸發。 若每次有任務送達時都必須等待新工作程序啟動,將會造成無法接受的延遲。 相反地,應將工作群組設定為維持一組待命的「暖機」工作者,以便任務能立即啟動。
相關參數: 最大容器槽位數、最小容器槽位數、備用容器槽位數、縮減規模延遲
- 使用「最大容器槽位數」來定義可配置的容器槽位最大數量。 您的叢集會根據工作負載需求,擴展至此同時執行數上限。
- 使用「最小容器槽位」來確保基礎工作節點池始終處於運行狀態,即使隊列中沒有任何任務時亦然。 當流量可能在一段時間內降至零,但您仍希望在流量恢復時能立即啟動時,請使用此選項。
- 利用「備用容器槽位」,確保可用的自由任務槽位數量多於當前正在執行的任務數量。 當任務送達時,系統會立即在已運行的工作節點上開始處理,同時工作節點群會在後台調配更多工作節點,以補充閒置運算能力。
- 使用「縮減延遲」功能,可防止工作器在最後一項任務完成後立即縮減規模。 當任務以間歇性方式抵達且彼此之間存在暫時空檔時,此設定能發揮作用,讓工作者保持待命狀態,並避免不必要的縮減與擴充週期。 讓工作程序保持「暖機」狀態,可縮短任務啟動延遲、將工作程序初始化的開銷降至最低,並降低反覆配置新工作程序的成本。