您可以為代管執行個體群組 (MIG) 設定自動調度資源,根據負載的增減,自動新增或移除虛擬機器 (VM) 執行個體。不過,如果應用程式初始化需要幾分鐘以上,則因應即時變更新增執行個體,可能無法快速提升應用程式容量。舉例來說,如果負載大幅增加 (例如使用者早上剛起床時),部分使用者可能會在應用程式於新例項上初始化時遇到延遲。
如果應用程式的初始化時間較長,且工作負載會隨著每日或每週週期而有規律變化,建議使用預測式自動調度資源功能,縮短應用程式的回應時間。
啟用預測式自動調度資源功能後,Compute Engine 會根據 MIG 的記錄預測未來的負載,並在預測負載前預先擴充 MIG,以便在負載抵達時,新執行個體已準備好提供服務。如果沒有預測自動調度資源功能,自動調度器只能根據觀察到的即時負載變化,被動地調度群組資源。啟用預測式自動調度資源後,自動調度器會使用即時資料和歷來資料,因應目前和預測的負載。詳情請參閱「預測式自動調度資源的運作方式」和「檢查預測式自動調度資源是否適合您的工作負載」。
事前準備
- 如要使用本指南提供的指令列範例,請安裝 Google Cloud CLI 或啟動 Cloud Shell。
- 瞭解自動調度資源基本概念。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
定價
預測式自動調度資源功能不需付費。不過,如果您啟用預測自動調整功能來提高可用性,則須支付 MIG 使用的 Compute Engine 資源費用。
限制
- 預測式自動調度資源功能僅適用於以 CPU 使用率做為調度指標。不支援 Cloud Load Balancing 或 Cloud Monitoring 指標。
- Compute Engine 需要 3 天的 CPU 自動調度資源記錄,才能產生預測結果。
- 預測結果是根據每週和每日的負載模式計算得出。 Compute Engine 不會預測每月、每年或一次性事件,也不會預測短於 10 分鐘的負載模式。您可以透過排程式自動調度資源,為一次性或其他負載模式要求容量。
適用工作負載
如果工作負載符合下列條件,預測式自動調度資源功能就能發揮最佳效果:
- 應用程式需要很長時間才能初始化,例如您設定的初始化期間超過 2 分鐘。
- 工作負載會隨著每日或每週週期而有規律地變化。
如果服務初始化時間較長,使用者可能會在擴充事件後遇到服務延遲問題,也就是在佈建新 VM 但尚未提供服務時。預測式自動調度資源功能會將應用程式的初始化時間列入考量,並在用量依預測提高前,事先向外擴充,確保可用服務執行個體數量足以達到目標使用率。
如要預覽預測式自動調度資源對群組的影響,請參閱「檢查預測式自動調度資源是否適合您的工作負載」。
啟用及停用預測式自動調度資源功能
根據 CPU 使用率調度資源時,您可以啟用預測式自動調度資源功能。如要進一步瞭解如何設定以 CPU 為依據的自動調度資源功能,請參閱「根據 CPU 使用率執行資源調度」一文。
如果 MIG 沒有自動調度器記錄,預測演算法可能需要 3 天才會影響自動調度器。在這段期間,群組只會根據即時資料調整規模。3 天後,群組就會開始根據預測結果調整規模。收集的歷史負載越多,預測型自動調度程式就越能瞭解負載模式,預測結果也會越準確。Compute Engine 最多會使用 MIG 的 3 週負載記錄,做為機器學習模型的輸入資料。
主控台
前往控制台的「Instance groups」(執行個體群組) 頁面。
在清單中按一下現有 MIG 的名稱,開啟群組的總覽頁面。
按一下 [編輯]。
按一下「群組大小和自動調度資源」展開該部分,然後執行下列操作:
如果沒有自動調度資源設定,請按照下列步驟設定自動調度資源:
- 在「Autoscaling」(自動調度資源) 區段中,按一下「Configure autoscaling」(設定自動調度資源功能)。 系統預設會新增 CPU 使用率信號。
- 指定您要讓自動配置器在這個群組中建立的執行個體數量下限與上限。
- 在「自動調度資源信號」部分,按一下 CPU 使用率信號。
- 視需要修改「信號類型」和「目標 CPU 使用率」。
在「預測式自動調度資源」部分,選取「針對可用性進行最佳化」,啟用預測式自動調度資源功能。
- 或者,如要停用預測演算法,只使用即時自動調度資源功能,請選取「關閉」。
按一下 [完成]。
如果已設定根據 CPU 使用率自動調度資源,請執行下列操作:
- 在「自動調度資源信號」部分,按一下 CPU 使用率信號。
- 在「預測式自動調度資源」部分,選取「針對可用性進行最佳化」,啟用預測式自動調度資源功能。
按一下 [完成]。
在「Initialization period」(初始化期間) 部分,指定應用程式在新執行個體上初始化所需的時間。這項設定會通知預測式自動調度資源功能,在預期負載出現前進一步擴充,以便在負載出現時初始化應用程式。
按一下 [儲存]。
gcloud
設定或更新 MIG 的自動調度程式時,請加入
--cpu-utilization-predictive-method
旗標,並使用下列其中一個值:optimize-availability
:啟用預測演算法none
(預設):停用預測演算法
如果群組尚未啟用以 CPU 為準的自動調度資源功能,請務必啟用。您可以使用
set-autoscaling
指令從頭設定群組的自動調度資源政策。舉例來說,下列指令說明如何使用下列設定檔設定自動調度資源:- 已啟用預測式自動調度資源功能。
- 目標 CPU 使用率為 75%。
- 執行個體數量上限設為 20。
- 初始化期間 (
--cool-down-period
) 設為 5 分鐘。這項設定會通知預測式自動調度器,在預期負載出現前 5 分鐘擴充,以便在負載出現時初始化應用程式。
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --cpu-utilization-predictive-method optimize-availability \ --target-cpu-utilization 0.75 \ --max-num-replicas 20 \ --cool-down-period 300
如果群組已啟用以 CPU 為準的自動調度資源功能,請使用
update-autoscaling
指令啟用預測演算法:gcloud compute instance-groups managed update-autoscaling MIG_NAME \ --cpu-utilization-predictive-method=optimize-availability
REST
建立或更新自動調度器時,請在要求主體中加入
predictiveMethod
欄位,並使用下列其中一個值:OPTIMIZE_AVAILABILITY
:啟用預測演算法NONE
(預設):停用預測演算法
如果群組沒有現有的自動調度資源設定,請執行下列步驟:
- 如果是區域 MIG:請呼叫
regionAutoscalers.insert
方法 - 如果是區域 MIG:請呼叫
autoscalers.insert
方法
如果群組已有自動調度資源設定,請執行下列步驟:
- 如果是區域 MIG:請呼叫
regionAutoscalers.patch
方法 - 如果是區域 MIG:請呼叫
autoscalers.patch
方法
如果群組尚未啟用以 CPU 為準的自動調度資源功能,請務必啟用。
舉例來說,下列要求會修補現有的自動調度資源,以啟用 CPU 基礎的自動調度功能,並採用下列設定:
- 已啟用預測式自動調度資源功能。
- 目標 CPU 使用率為 75%。
- 執行個體數量上限設為 20。
- 初始化期間 (
coolDownPeriodSec
) 設為 5 分鐘。這項設定會通知預測式自動調度器,在預期負載出現前 5 分鐘擴充,以便在負載出現時初始化應用程式。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers/ { "name": "AUTOSCALER_NAME", "target": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "cpuUtilization": { "utilizationTarget": 0.75, "predictiveMethod": "OPTIMIZE_AVAILABILITY" }, "maxNumReplicas": 20, "coolDownPeriodSec": 300 } }
檢查是否已啟用預測式自動調度資源
如要查看 MIG 目前的自動調度資源設定,請參閱「取得 MIG 屬性」。
設定預測式自動調度資源功能
如要進一步瞭解如何設定目標使用率、執行個體數量的下限與上限,以及初始化期間,請參閱「根據 CPU 使用率執行資源調度」。設定這些選項後,預測自動調度器會以您設定的目標使用率,維持群組內所有執行個體的使用率,並將使用率控制在群組的上下限範圍內,與即時自動調度器運作方式相同。
使用初始化期間設定,將應用程式初始化所需的時間納入考量。這項設定會影響預測式自動配置器在預測負載增加前,提前啟動新執行個體的程度,確保應用程式在負載增加時能立即提供服務。
檢查預測式自動調度資源是否適合您的工作負載
如要瞭解預測式自動調度資源是否能提升應用程式的可用性,您可以比較群組目前以 CPU 為準的自動調度資源設定,與預測式自動調度資源的成效。您不需要啟用預測式自動調度資源功能,即可進行比較。
如要進一步瞭解適合預測式自動調度資源的工作負載,請參閱「適合的工作負載」一文。
檢查是否過載
當自動調度資源的 MIG 平均 CPU 使用率超過目標時,就會發生過載。如要查看自動調度資源設定是否導致 VM 在過去 7 天內過載,以及預測自動調度資源功能是否能減少過載情形,請完成下列步驟:
前往控制台的「Instance groups」(執行個體群組) 頁面。
按一下已設定 CPU 自動調度資源的現有 MIG。群組的總覽頁面隨即開啟。
按一下 [編輯]。
按一下「群組大小和自動調度資源」展開該部分。
在「自動調度資源」部分中,展開「自動調度資源信號」下方的「CPU 使用率」部分,然後按一下「看看預測式自動調度資源是否能提供最佳可用性」。
根據過去 7 天的資料,下表會顯示每天使用的 VM 數量,以及每天過度負載的 VM 數量:
- 目前的自動調度資源設定:顯示自動調度資源在過去 7 天的成效,並以自動調度資源的設定為準。
- 預測式自動調度資源功能設為「針對可用性進行最佳化」:顯示過去 7 天內,如果啟用預測式自動調度資源功能,自動調度器會有什麼成效。
您可以將「每日使用的 VM 數量」做為費用的替代指標。舉例來說,為減少每日過載的 VM 數量,預測式自動調度器可能會提早建立 VM 並延長執行時間,導致產生額外費用。
監控及模擬預測式自動調度資源
您可以使用 Cloud Monitoring,以圖表呈現群組的歷史大小。監控圖表會顯示自動調度資源設定在一段時間內如何調度群組資源,以及啟用預測式自動調度資源後,群組資源的調度方式。
如果群組已停用預測式自動調度資源,您可以使用這項工具模擬預測式自動調度資源,然後再啟用這項功能。
前往控制台的「Instance groups」(執行個體群組) 頁面。
按一下已設定 CPU 自動調度資源的現有 MIG。群組的總覽頁面隨即開啟。
按一下「監控」,即可查看與群組相關的圖表。
在第一個圖表中,按一下標題並選取「預測自動調度」。 這個檢視畫面會顯示群組的實際大小和預測大小。
您可以選取其他時間範圍來查看更多記錄,或放大需求成長的期間,瞭解預測自動調度資源功能如何影響預測負載前的群組大小。
預測式自動調度資源的運作方式
預測式自動調度器會根據指標的歷史趨勢,預測調度指標。預測結果每隔幾分鐘就會重新計算,因此自動配置器可以根據負載的最新變化,快速調整預測結果。預測式自動調度器需要至少 3 天的記錄,才能判斷具代表性的服務用量模式,進而提供預測結果。Compute Engine 最多會使用 MIG 的 3 週負載記錄,做為機器學習模型的輸入資料。
預測型自動調度器會根據多項因素 (包括下列因素),計算達到使用率目標所需的 VM 數量:
預測式自動調度器會根據這些因素,在預期需求出現前擴充群組。
圖 1. 這個圖表呈現了已啟用和未啟用預測式自動調度資源功能的服務 VM 有何差異。
圖 1 中的藍線顯示 VM 需求不斷增加。黑線顯示自動調整規模工具的回應:新增更多 VM。不過,如果應用程式的初始化時間較長,灰線會顯示新增的 VM 需要額外時間才能準備好提供服務,這可能會導致服務 VM 不足,無法滿足需求。啟用預測式自動調度資源後,系統會考量預測需求增加量和應用程式初始化時間較長的問題,自動調度器會提早新增 VM,確保有足夠的 VM 提供服務。您可以設定「初始化期間」,決定提前新增執行個體的時機。
即時用量資料
預測自動調度器無法根據歷來資料判斷所有未來用量的變化模式,因此也會與即時資料順暢搭配運作。舉例來說,如果發生意料之外的新聞事件,可能會導致用量突然暴增,而這類情況無法單純根據歷來資料預測。為因應這類無法預測的負載變化,預測式自動調度器會採取下列做法:
- 預測結果會不斷調整:系統每隔幾分鐘就會重新計算預測結果,因此預測結果會根據最新資料進行調整。調整新模式的確切時間取決於新模式的可重複性,以及新模式與過去預測之間的差異大小等因素。
- 依據即時資料調整:自動調度器會根據指標的即時值,建議足夠的執行個體數量,確保群組達到目標使用率。如果即時信號的目前值大於預測值,系統會優先採用信號的目前值,而非預測值。因此,啟用預測自動調度資源功能的 MIG,可用性一律高於未啟用這項功能的 MIG。
圖 2:兩張圖表會顯示預測值如何根據實際 CPU 使用率調整。
在圖 2 中,黃色虛線代表 t1 的預測結果。但如藍色實線所示,實際 CPU 使用量與預測值不同。左側圖表顯示實際 CPU 使用率高於預測值。在右側圖表中,實際 CPU 使用量低於預測值。藍色虛線代表調整後的預測結果。
短時間內無法預測的尖峰
系統會即時處理短時間內無法預測的尖峰流量。自動配置器會根據指標的目前實際值,建立至少與所需數量相同的執行個體,以將使用率維持在設定的目標。不過,這些執行個體不會預先建立,如下圖所示。
圖 3:如果出現短暫且無法預測的尖峰,自動調整功能就會即時做出反應。
在圖 3 中,藍色實線代表實際 CPU 使用量。無法預測 CPU 使用率是否會突然飆升。由於自動調整程式會持續監控即時資料,因此會新增執行個體來因應尖峰流量。實心黑線代表自動調度器因應尖峰流量,反應式地新增 VM。灰色實線代表服務 VM 數量。由於應用程式的初始化時間,灰線會落後黑線。在此情境中,群組暫時超載。
突然下降
另一種無法預測的使用量變化是突然下降,例如應用程式堆疊部分發生故障,導致使用量下降。發生這種情況時,執行個體數量一開始會遵循預測。不過,隨著時間推移,預測會根據低於預測的用量進行調整,進而縮減規模。實際調整時間取決於多項因素,包括:過去發生模式的頻率、低迷時間長度,以及低迷程度。
圖 4:如果用量突然下降,預測式自動調度資源功能就會變更預測。
在圖 4 中,黃色虛線代表 t1 的預測結果。但如藍色實線所示,實際 CPU 用量低於預測值。藍色虛線代表更新後的預測值,系統在觀察到使用量低於預測值後,會自動調整預測值。因此,自動調度器會在標準穩定期過後移除執行個體。
歷來資料
預測式自動調度資源功能需要至少 3 天的歷來負載資料,才能開始預測。如果新的 MIG 缺少歷來資料,Compute Engine 會使用即時資料反應式地調整群組大小,直到有足夠的歷來資料為止。3 天後,Compute Engine 會收集更多用量資料,預測結果也會更加準確。
如果您透過建立新的 MIG 並刪除舊 MIG 來更新應用程式 (例如藍綠部署),則新的 MIG 需要 3 天的歷史負載資料,預測自動調度功能才能再次產生預測資料。如要保留各 MIG 的載入記錄,以便在建立新的 MIG 時立即開始預測,請與我們聯絡,索取加入私人搶先體驗計畫的說明。
後續步驟
- 瞭解如何管理自動調度器。
- 瞭解自動配置器如何做出決策。
- 瞭解如何使用多個自動調度資源信號來調度群組資源。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-04 (世界標準時間)。
-