瞭解自動配置器所做的決策

自動調度資源功能可代替您自動調度代管執行個體群組的資源配置。本文件可帶您瞭解自動配置器在調度代管執行個體群組的資源時,所做出的一些決策。

目標與實際使用率之間的差距

執行自動調度資源程序的期間,您可能會發現到,執行個體群組越小,執行個體群組的實際使用率與目標使用率之間的差距似乎就越大。這是因為自動配置器在解讀使用率資料,並判斷所要新增或移除的執行個體數量時,都會採取保守的做法,而將未滿一個執行個體的部分進位到下一個執行個體數,或捨去到上一個執行個體數。這種做法可避免自動配置器新增的資源量不足,或是移除過多的資源。

例如,若您將使用率目標設為 0.7,而應用程式超過了使用率目標,則自動配置器可能會判斷若新增 1.5 個虛擬機器 (VM) 執行個體,即可將使用率降低至接近 0.7。由於無法新增 1.5 個 VM 執行個體,因此自動配置器會將要新增的執行個體數量進位,而新增兩個執行個體。如此可能會使平均 CPU 使用率降到低於 0.7,但可確保資源充足可支援應用程式。

同樣地,若自動配置器判斷移除 1.5 個 VM 執行個體會讓使用率增加至接近 0.7,就僅會移除一個虛擬機器。

在具有較多 VM 執行個體的大型群組中,使用率是由大量的執行個體分攤,因此新增或移除 VM 執行個體較不會造成實際使用率和目標使用率之間有如此大的差距。

縮減資源時的延遲

為了縮小規模,自動配置器會根據過去 10 分鐘的尖峰負載來計算群組的建議目標大小。過去 10 分鐘稱為穩定期

觀察前 10 分鐘的使用狀況,可協助自動配置器進行以下事項:

  • 確保從執行個體群組收集到用量資訊是穩定的。
  • 避免自動配置器不斷過度新增或移除執行個體。
  • 判斷是否只需使用較小規模的群組即可支援過去 10 分鐘內的尖峰負載,並安全地移除執行個體。

這個 10 分鐘的穩定期看似是縮減規模時發生延遲,但實際上是自動調度資源的內建功能。如果代管執行個體群組中新增了執行個體,這樣的延遲可確保執行個體在可終止前,至少會執行 10 分鐘。

判斷是否要縮減群組資源時,系統會忽略新執行個體的等待期

連線排除導致延遲

如果群組屬於後端服務的一部分,且該服務已啟用連線排除功能,在連線排除持續時間過後,最長可能需要等待 60 秒,VM 執行個體才會移除或刪除。

準備終止執行個體

自動配置器縮減資源時,會判定需要關閉的 VM 執行個體數量,並從執行個體群組中選出低使用率的 VM 執行個體來加以終止。終止執行個體前,請先確認這些執行個體是否需執行特定工作,例如關閉所有現有的連線、安全地關閉所有應用程式或應用程式伺服器、上傳記錄檔等等。您可使用關閉指令碼,指示執行個體來執行這些工作。

系統會在發出終止要求直到實際終止執行個體前的短暫期間內,盡可能執行關閉指令碼。在這段期間,Compute Engine 會嘗試執行關閉指令碼,以執行您在指令碼中指定的所有工作。

若您是對代管執行個體群組使用負載平衡,這種做法尤其實用。若執行個體健康狀態不良,則負載平衡器可能需要花點時間才會辨識出執行個體處於不良健康狀態,因此負載平衡器會持續向執行個體傳送新要求。而透過關閉指令碼,執行個體就能在關閉時回報其處於不良的健康狀態,如此一來負載平衡器即可停止傳送流量至執行個體。如需更多資訊,請參閱負載平衡說明文件中的處理健康狀態不良執行個體相關說明。

如要進一步瞭解關閉指令碼,請參閱關閉指令碼的相關說明。

如要進一步瞭解執行個體的關閉作業,請參閱說明文件中關於停止刪除執行個體的說明。

查看自動調度資源圖表中的使用率

如果您有正在進行自動資源調度的代管執行個體群組,Compute Engine 會提供自動調度資源圖表,該圖表會追蹤任何時間點的總使用率及自動調度資源執行個體數量。您可在 Google Cloud Platform Console 中存取這份圖表。

  1. 前往 GCP Console 的「Instance groups」(執行個體群組) 頁面。

    前往「Instance Groups」(執行個體群組) 頁面

  2. 找到要查看且已進行自動資源調度的代管執行個體群組,並按一下其名稱。該群組必須是依 CPU 使用率進行自動調度資源 (系統尚未支援其他自動調度資源指標)。
  3. 在代管執行個體群組詳細資料的頁面上,選取 [Monitoring] (監控) 分頁標籤 (若尚未選取)。

    「Monitoring」(監控) 分頁標籤。

  4. 確認已在下拉式清單中選取 [Autoscaled size] (自動配置大小)

此圖表會針對 CPU 用量追蹤執行個體的數量。請透過下列資訊來瞭解圖表:

  • 上方圖表中的藍線代表代管執行個體群組中的執行個體數量。
  • 下方圖表的藍線顯示該群組的 CPU 總使用率。
  • 下方圖表中的綠線代表的是代管執行個體群組可用的剩餘容量。
    • 如果綠線的的位置高於藍線,表示具有大量的可用容量,且 VM 執行個體的使用量可能過低。
    • 如果綠線的的位置低於藍線,表示剩餘的容量極少,甚至無可用容量,請新增更多執行個體至執行個體群組。
  • 若容量降低,可能表示執行個體群組的規模縮減,因此上方圖表中的藍線亦會下降。同樣地,若容量增加,表示執行個體的群組規模可能也已增加。

舉例來說,以下圖表擷取的是某個已進行自動調度資源的代管執行個體群組,該群組已達到容量上限,導致自動配置器新增更多 VM 執行個體群組,進而提高群組容量:

自動調度資源圖表螢幕擷取畫面

查看狀態訊息

若自動配置器在執行資源調度時遇到問題,會傳回警告或錯誤訊息。您可使用以下兩種方式之一來查看這些狀態訊息。

在「Instance groups」(執行個體群組) 頁面上查看狀態訊息

可直接在 Google Cloud Platform Console 的「Instance groups」(執行個體群組) 頁面上查看狀態訊息。

  1. 前往 Google Cloud Platform Console 的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 請尋找具有注意 (!) 圖示的執行個體群組。

    執行個體群組頁面上的狀態訊息

  3. 將游標懸停在狀態圖示上,即可查看狀態訊息的詳細資料。

在「Instance group」(執行個體群組) 詳細資料頁面上查看狀態訊息

直接前往特定執行個體群組的詳細資料頁面,即可查看相關狀態訊息。

  1. 前往 Google Cloud Platform Console 的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 按一下要查看其狀態訊息的執行個體群組。
  3. 詳細資料頁面的「Members」(成員) 分頁標籤上,即提供狀態訊息供您查看。例如:

    執行個體群組詳細資料頁面上的狀態訊息

常見的傳回狀態訊息

若自動配置器在執行資源調度時遇到問題,會傳回警告或錯誤訊息。以下是一些常見的傳回訊息及其含意。

All instances in the instance group are unhealthy (not in RUNNING state). If this is an error, check the instances.
這個執行個體群組中的所有執行個體皆處於非 RUNNING 狀態。如果是刻意這樣做,您可忽略此訊息。若並非刻意,請對執行個體群組進行疑難排解。
The number of instances has reached the maxNumReplicas. The autoscaler cannot add more instances.
您在建立自動配置器時,指定了執行個體群組所能擁有的執行個體數量上限。自動配置器正在嘗試將執行個體群組的規模向上調整,以符合需求,但已達到 maxNumReplicas。如要瞭解如何將 maxNumReplicas 更新為更大的數字,請參閱更新自動配置器
The monitoring metric that was specified does not exist or does not have the required labels. Check the metric.
您目前是使用 Stackdriver 指標來自動調度資源,但您提供的指標不存在,或缺少必要的標籤。端看您使用的是標準指標還是自訂指標,所需的標籤也會不同。詳情請參閱根據 Monitoring 指標執行資源調度的說明文件。
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
您可在 Google Cloud Platform Console 的「Quota」(配額) 頁面上,取得可用配額的相關資訊。
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
執行個體群組正以 maxRate 設定在執行負載平衡作業,但自動配置器不支援這種模式。請變更設定或停用自動調度資源功能。如要進一步瞭解 maxRate,請參閱負載平衡說明文件中的限制與規範相關說明。
The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any queries from the load balancer. Check that the load balancing configuration is working.
執行個體群組達到負載平衡,但沒有查詢傳入該群組。此服務可能正處於閒置期,所以不須擔憂。不過,這項訊息也可能是由於錯誤設定所造成。舉例來說,自動調度資源的執行個體群組可能是多個負載平衡器的目標,但設定不受支援。如需完整的規範清單,請參閱負載平衡說明文件中的限制與規範相關說明。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件