針對 Azure 監視器自動調整進行疑難解答

Azure 監視器自動調整可協助您有正確的資源量執行,以處理應用程式上的負載。 它可讓您新增資源來處理負載增加,並藉由移除閑置的資源來節省成本。 您可以根據排程、固定日期時間或您選擇的資源計量進行調整。 如需詳細資訊,請參閱 自動調整概觀

自動調整服務會提供計量和記錄,協助您了解發生的調整動作,以及評估導致這些動作的條件。 您可以找到下列問題的解答:

  • 為什麼我的服務相應放大或相應縮小?
  • 為什麼我的服務沒有調整?
  • 為什麼自動調整動作失敗?
  • 為什麼自動調整動作需要時間來調整?

Flex 虛擬機器擴展集

自動調整調整動作會在手動調整動作套用至 一組特定虛擬機作業的 Flex Microsoft.Compute/virtualMachineScaleSets (VMSS) 資源后,延遲最多數小時。
例如, Azure VM CLI DeleteAzure VM Rest API Delete ,其中作業會在個別 VM 上執行。

在這些情況下,自動調整服務並不知道個別的 VM 作業。

若要避免這種情況,請使用相同的作業,但在虛擬機擴展集層級。 例如, Azure VMSS CLI 刪除實例Azure VMSS Rest API 刪除實例。 自動調整會偵測虛擬機擴展集中的實例計數變更,並執行適當的調整動作。

自動調整計量

自動調整提供四個 計量 來瞭解其作業:

  • 觀察到的計量值:您選擇要採取調整動作的計量值,如自動調整引擎所見或計算。 因為單一自動調整設定可以有多個規則,因此有多個計量來源,所以您可以使用「計量來源」作為維度進行篩選。
  • 計量臨界值:您設定為採取調整動作的閾值。 由於單一自動調整設定可以有多個規則,因此有多個計量來源,因此您可以使用「計量規則」作為維度進行篩選。
  • 觀察到的容量:自動調整引擎所見之目標資源的使用中實例數目。
  • 已起始的調整動作:自動調整引擎所起始的相應放大和相應縮小動作數目。 您可以依向外延展與相應縮小動作進行篩選。

您可以使用 計量總 管,在單一位置繪製上述計量圖表。 圖表應該會顯示:

  • 實際計量。
  • 自動調整引擎所見/計算的計量。
  • 調整動作的臨界值。
  • 容量變更。

範例 1:分析自動調整規則

虛擬機擴展集的自動調整設定:

  • 當集合的平均 CPU 百分比在 10 分鐘內大於 70% 時相應放大。
  • 當集合的CPU百分比小於5%超過10分鐘時,相應縮小。

讓我們從自動調整服務檢閱計量。

下圖顯示 虛擬機擴展集的 [CPU 百分比] 計量。

Screenshot that shows a virtual machine scale set percentage CPU example.

下一張圖表顯示 自動調整設定的 [觀察計量值 ] 計量。

Screenshot that shows another virtual machine scale set percentage CPU example.

最後一張圖表顯示 計量閾值觀察到的容量 計量。 相應 放大規則頂端的計量閾值 計量為 70。 底部的 Observed Capacity 計量會顯示目前為 3 的作用中實例數目。

Screenshot that shows Metric Threshold and Observed Capacity.

注意

您可以依計量觸發程式規則維度向外延展(增加)規則來篩選 計量臨界 值,以查看相應放大閾值和相應縮小規則(減少)。

範例 2:虛擬機擴展集的進階自動調整

自動調整設定可讓虛擬機擴展集資源根據其本身 的輸出流量 計量相應放大。 已 選取計量閾值的 [依實例計數 分割計量] 選項。

調整動作規則是,如果每個實例輸出流程值大於 10,則自動調整服務應該相應放大 1 個實例。

在此情況下,自動調整引擎觀察到的計量值會計算為實際計量值除以實例數目。 如果觀察到的計量值小於臨界值,則不會起始相應放大動作。

下列螢幕快照顯示兩個計量圖表。

[平均輸出流量] 圖表會顯示輸出流量計量的值。 實際值為 6。

Screenshot that shows the Average Outbound Flows page with an example of a virtual machine scale set autoscale metrics chart.

下圖顯示一些值:

  • 中間的 Observed Metric Value 計量為 3,因為有 2 個作用中實例,而 6 除以 2 是 3。
  • 底部的 Observed Capacity 計量會顯示自動調整引擎看到的實例計數。
  • 頂端的 [計量閾值 ] 計量會設定為 10。Screenshot that shows a virtual machine scale set autoscale metrics charts example.

如果有多個縮放動作規則,您可以使用計量總管圖表中的分割或 新增篩選 選項,查看特定來源或規則的計量。 如需分割計量圖表的詳細資訊,請參閱 計量圖表的進階功能 - 分割

範例 3:了解自動調整事件

在自動調整設定畫面中,移至 [執行歷程記錄] 索引標籤,以查看最新的調整動作。 索引標籤也會顯示一段時間的 [觀察容量 ] 變更。 若要尋找所有自動調整動作的詳細資訊,包括更新/刪除自動調整設定等作業,請檢視活動記錄檔,並依自動調整作業進行篩選。

Screenshot that shows autoscale settings run history.

自動調整資源記錄

自動調整服務會提供 資源記錄。 記錄有兩種類別:

  • 自動調整評估: 每次執行檢查時,自動調整引擎就會記錄每個單一狀況評估的記錄項目。 此項目包含計量的觀察值詳細資料、已評估的規則,以及評估是否導致調整動作。
  • 自動調整調整動作:引擎會記錄自動調整服務所起始的調整動作事件,以及這些調整動作的結果(成功、失敗,以及自動調整服務所見的縮放比例)。

如同任何 Azure 監視器支援的服務,您可以使用 診斷設定 將這些記錄路由傳送至:

  • 您的 Log Analytics 工作區可取得詳細的分析。
  • Azure 事件中樞,然後 Azure 事件中樞 至非 Azure 工具。
  • 封存 Azure 儲存體 帳戶。

Screenshot that shows autoscale diagnostic settings.

上述螢幕快照顯示 Azure 入口網站 自動調整診斷設定窗格。 您可以在該處選取 [ 診斷/資源記錄] 索引標籤,並啟用記錄收集與路由。 您也可以使用 REST API、Azure CLI、PowerShell 和 Azure Resource Manager 範本來執行相同的動作,藉由選擇資源類型作為 Microsoft.Insights/Autoscale 設定 來進行診斷設定。

使用自動調整記錄進行疑難解答

為了獲得最佳的疑難解答體驗,建議您在建立自動調整設定時,透過工作區將記錄路由傳送至 Azure 監視器記錄 (Log Analytics)。 此程式會顯示在上一節的螢幕快照中。 您可以使用 Log Analytics 來驗證評估和調整動作。

將自動調整記錄設定為傳送至 Log Analytics 工作區之後,您可以執行下列查詢來檢查記錄。

若要開始使用,請嘗試此查詢以檢視最新的自動調整評估記錄:

AutoscaleEvaluationsLog
| limit 50

或嘗試下列查詢來檢視最新的調整動作記錄:

AutoscaleScaleActionsLog
| limit 50

使用下列各節回答這些問題。

您沒想到會發生調整動作

首先,執行調整動作的查詢,以尋找您感興趣的縮放動作。 如果是最新的調整動作,請使用下列查詢:

AutoscaleScaleActionsLog
| take 1

CorrelationId從調整動作記錄中選取欄位。 使用 CorrelationId 來尋找正確的評估記錄檔。 執行下列查詢會顯示已評估並導致該縮放動作的所有規則和條件。

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId>"

哪一個配置檔造成調整動作?

發生調整動作,但您有重疊的規則和配置檔,而且需要追蹤導致動作的原因。

CorrelationId尋找縮放動作的 ,如範例 1 中所述。 然後在評估記錄上執行查詢,以深入瞭解配置檔。

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId_Guid>"
| where ProfileSelected == true
| project ProfileEvaluationTime, Profile, ProfileSelected, EvaluationResult

您也可以使用下列查詢來進一步瞭解整個設定檔評估:

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName contains == "profileEvaluation"
| project OperationName, Profile, ProfileEvaluationTime, ProfileSelected, EvaluationResult

未發生縮放動作

您預期會有調整動作,但未發生。 可能沒有任何調整動作事件或記錄。

如果您使用計量型調整規則,請檢閱自動調整計量。 [觀察計量] 值或 [觀察容量] 值可能不是您預期的值,因此調整規則不會引發。 您仍會看到評估,但不會看到向外延展規則。 冷卻時間也可能讓規模調整動作無法發生。

當您預期發生調整動作時,請檢閱自動調整評估記錄。 檢閱它所做的所有評估,以及為何決定不觸發縮放動作。

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName == "MetricEvaluation" or OperationName == "ScaleRuleEvaluation"
| project OperationName, MetricData, ObservedValue, Threshold, EstimateScaleResult

調整動作失敗

在某些情況下,自動調整服務會採取調整動作,但系統決定不調整或無法完成調整動作。 使用此查詢來尋找失敗的調整動作:

AutoscaleScaleActionsLog
| where ResultType == "Failed"
| project ResultDescription

建立警示規則以取得自動調整動作或失敗的通知。 您也可以建立警示規則,以取得自動調整事件的通知。

自動調整資源記錄的架構

如需詳細資訊,請參閱 自動調整資源記錄

下一步

閱讀自動調整最佳做法的相關信息