Azure 中的自動調整概觀

本文說明 Azure 監視器中的自動調整功能及其優點。

自動調整支援多種資源類型。 如需有關支援資源的詳細資訊,請參閱自動調整支援的資源

注意

可用性設定組是舊版的虛擬機器調整功能,提供有限支援。 建議您移轉至 Azure 虛擬機器擴展集,以獲得更快、更可靠的自動調整支援。

何謂自動調整?

自動調整是一項服務,您可以使用此服務,根據應用程式上的負載,自動新增和移除資源。

當應用程式遇到較高的負載時,自動調整會新增資源以處理增加的負載。 負載偏低時,自動調整會減少資源數目以降低成本。 您可以根據 CPU 使用量、佇列長度和可用記憶體等計量,調整應用程式。 您也可以根據排程進行調整。 計量和排程是在規則中設定。 規則包含執行應用程式所需的最低資源層級和不會超過的最高資源層級。

例如,當每個 VM 的平均 CPU 使用量高於 70% 時,會新增 VM 來相應放大應用程式。 當 CPU 使用量下降至 40% 時,移除 VM 加以調整。

A diagram that shows scaling out by adding virtual machine instances.

當符合規則中的條件時,會觸發一或多個自動調整動作來新增或移除 VM。 您也可以執行其他動作,例如傳送電子郵件通知或 Webhook 以觸發其他系統中的程序。

水平和垂直調整

自動調整會縮減和擴增,或水平調整。 水平調整就是增加或減少資源執行個體數目。 舉例來說,對虛擬機器擴展集而言,擴增代表新增更多虛擬機器。 縮減代表移除虛擬機器。 在雲端的情況下,水平調整會更有彈性,因為您可以使用此功能執行大量的 VM 來處理負載。

自動調整不支援垂直調整。 反之,擴大和縮小 (或稱垂直調整) 會讓資源執行個體數維持不變,但就記憶體、CPU 速度、磁碟空間和網路方面而言,則會提供更多容量。 垂直調整受限於較大的硬體可用性,最終達到上限。 硬體大小可用性會依區域而有所不同。 垂直調整也可能必須在調整程序期間重新啟動 VM。

A diagram that shows scaling up by adding CPU and memory to a virtual machine.

當符合規則中的條件時,會觸發一或多個自動調整動作來新增或移除 VM。 您也可以執行其他動作,例如傳送電子郵件通知或 Webhook 以觸發其他系統中的程序。

預測自動調整

預測自動調整使用機器學習,來以幫助管理和調整具有循環工作負載模式的虛擬機器擴展集。 其會根據歷程記錄的 CPU 使用模式,預測虛擬機器擴展集上的整體 CPU 負載。 然後擴展集可以即時相應放大以符合預測需求。

自動調整設定

您可以透過下列途徑相應放大:

架構

下圖顯示此架構。

Diagram that shows autoscale flow.

資源計量

資源會產生自動調整中用於觸發擴展集的計量。 虛擬機器擴展集會使用來自 Azure 診斷代理程式的遙測資料來產生資計量。 Azure App Service 和 Azure 雲端服務的 Web Apps 功能遙測直接來自 Azure 基礎結構。 一些常用的計量包括 CPU 使用率、記憶體使用量、執行緒計數、佇列長度和磁碟使用量。 如需可用計量的清單,請參閱自動調整共同計量

自訂計量

使用應用程式所產生的自訂計量。 設定應用程式以將計量傳送至 Application Insights,如此您可以使用這些計量判斷調整的時機。

Time

設定依據排程的規則以觸發調整事件。 當您了解負載中的時間模式並想要在負載中發生預期變更之前進行調整時,請使用依據排程的規則。

規則

規則定義觸發調整事件、調整方向和調整程度所需的條件。 使用不同的計量 (例如 CPU 使用量和佇列長度) 合併多個規則。 每個設定檔最多定義 10 個規則。

規則可以是:

  • 以計量為基礎:根據計量值觸發,例如當 CPU 使用量高於 50%。
  • 以時間為基礎:根據排程觸發,例如每週六早上 8 點。

如果符合任何規則,則自動調整會擴增。 如果符合所有規則,則自動調整會縮減。 就邏輯運算子而言,OR 運算子會用來透過多個規則進行擴增。 AND 運算子會用來透過多個規則進行縮減。

動作與自動化

規則可以觸發一或多個動作。 動作包括:

  • 調整:縮減或擴增資源。
  • 電子郵件:將電子郵件傳送給訂用帳戶管理員、共同管理員和/或其他電子郵件地址。
  • Webhooks:呼叫 Webhook 觸發 Azure 內部或外部的多個複雜動作。 在 Azure 中,您可以:

自動調整設定

自動調整設定包含自動調整組態。 設定包含定義規則、限制和排程與通知的調整條件。 在設定中定義一或多個調整規則和一個通知設定。

自動調整使用下列術語和結構。

UI JSON/CLI 描述
調整條件 設定檔 根據計量或時間的規則、執行個體限制和排程集合。 您可以定義一或多個調整條件或設定檔。 每個自動調整設定可定義最多 20 個設定檔。
規則 規則 根據觸發調整動作的時間或計量的一組條件。 您可以定義一或多個相應縮小和相應放大動作的規則。 每個設定檔可定義最多共 10 個規則。
執行個體限制 處理能力 每個調整條件或設定檔都會定義依據設定檔執行的預設、最大和最小執行個體數目。
排程 週期 指出自動調整應在何時讓此調整條件或設定檔生效。 您可以有多個調整條件,這可讓您處理不同和重疊的需求。 舉例來說,對於一天當中的不同時段或一週當中的不同日子,您可以有不同的調整條件。
Notify 通知 定義自動調整事件發生時要傳送的通知。 自動調整可以通知一或多個電子郵件地址,或使用一或多個 Webhook 進行呼叫。 您可以在 JSON 中設定多個 Webhook,但在 UI 中僅能設定一個 Webhook。

Diagram that shows Azure autoscale setting, profile, and rule structure.

可設定之欄位和說明的完整清單可在 自動調整 REST API中取得。

如需程式碼範例,請參閱:

支援的自動調整服務

自動調整支援下列服務。

服務 結構描述與文件
Azure 虛擬機器擴展集 使用 Azure 虛擬機器擴展集自動規模調整的概觀
Azure App Service 中的 Web Apps 功能 調整 Web Apps
Azure APIM 服務 自動調整 Azure API 管理執行個體
Azure 資料總管叢集 管理 Azure 資料總管叢集的大小調整以適應不斷變化的需求
Azure 串流分析 自動調整串流單位 (預覽版)
Azure SignalR Service (進階層) 自動調整 Azure SignalR 服務的單位
Azure Machine Learning 工作區 自動調整線上端點
Azure Spring Apps 設定應用程式的自動調整
Azure 媒體服務 媒體服務中的自動調整
Azure 服務匯流排 自動更新 Azure 服務匯流排命名空間的傳訊單位
Azure Logic Apps - 整合服務環境 (ISE) 新增 ISE 容量

下一步

若要深入了解自動調整規模,請參閱下列資源: