設定虛擬機器擴展集
調整規模時,您會將執行個體新增至虛擬機器擴展集。 在貨運公司案例中,規模調整是處理要求數目隨時間變更的實用策略。 當使用者數目變更時,規模調整會調整執行 Web 應用程式的虛擬機器數目。 如此一來,無論目前負載為何,系統都會維持一致的回應時間。
在本單元中,您會了解如何縮放虛擬機器規模集。 若要手動調整,您可以明確地設定虛擬機器擴展集中的虛擬機器數目。 您可以定義會觸發虛擬機器配置和解除配置的規模調整規則,來設定自動規模調整。 這些規模調整規則會藉由監視各種效能計量,來判斷調整系統的時機。
手動調整虛擬機器擴展集規模
您是透過增加或減少執行個體計數,來手動調整虛擬機器擴展集規模。 您能以程式設計方式或在 Azure 入口網站中執行此工作。
下列程式碼使用 Azure CLI,來變更虛擬機器擴展集中的執行個體數目:
az vmss scale \
--name webServerScaleSet \
--resource-group MyResourceGroup \
--new-capacity 6
自動調整虛擬機器擴展集規模
在某些情況下,手動調整規模會很有用。 但在許多情況下,自動調整規模比較好。 它可讓系統控制規模設定中的實例數量。
您能以下列項目作為自動調整規模的基礎:
- 排程:如果您知道您的工作負載會在特定日期或時間增加,請使用此方法。
- 計量:透過監視與擴展集關聯的效能計量來調整規模。 當這些計量超過指定的閾值時,擴展集可以自動啟動新的虛擬機器執行個體。 當計量指出不再需要額外資源時,擴展集可以停止任何多餘的執行個體。
定義自動調整規模條件、規則和限制
自動規模調整是以一組規模調整條件、規則和限制為基礎。 規模調整條件結合時間和一組規模調整規則。 如果目前時間是在規模調整條件中定義的範圍內,會評估條件的規模調整規則。 評估的結果會決定要新增或移除擴展集中的執行個體。 規模調整條件也會定義規模調整限制 (執行個體數目的最大值和最小值)。
在貨運公司案例中,您可以新增監視整個擴展集 CPU 使用量的規模調整規則。 如果 CPU 使用量超過閾值 (百分之 75),規模調整規則可以增加虛擬機器執行個體數目。 第二個規模調整規則也可以監視 CPU 使用量,但會在使用量低於百分之 50 時減少虛擬機器執行個體數目。 因為該應用程式的全球性,這些規則應該隨時保持使用中狀態,而不是只用於特定時段。
虛擬機器擴展集可以包含許多規模調整條件。 系統會處理每個符合的規模調整條件。 擴展集也可以包含預設規模調整條件,如果沒有符合目前時間和效能計量的其他規模調整條件,就會使用預設規模調整條件。 預設規模調整條件一律是作用中。 其不包含任何規模調整規則,其作用就像是執行不會縮減或擴增的 null 規模調整條件一樣。不過,您可以修改預設規模調整條件來設定預設執行個體計數,也可以新增一組重新擴增和縮減的規模調整規則。
使用排程型自動規模調整
排程型規模調整必須指定開始和結束時間,以及要新增至擴展集的執行個體數目。 下列螢幕擷取畫面顯示 Azure 入口網站中的範例。 執行個體數目在每個星期一和星期三上午 6 點至下午 6 點之間,會相應放大至 20 個。 在這些時間外,如果沒有其他規模調整條件,系統會套用預設規模調整條件。
在此案例中,預設規則會將系統縮減至兩個執行個體。 此值是此預設規模調整條件中的 [最大值]。
使用計量型自動規模調整
計量型規模調整規會指定要監視的資源,例如 CPU 使用率或回應時間。 規模調整規則會根據這些計量值,將執行個體新增至擴展集或從中移除。 您可以指定執行個體數目限制,以防止擴展集過度縮減或擴增。
在範例案例中,當平均 CPU 使用率超過百分之 75 時,您希望將執行個體數量增加一個。 此外,您也想要將相應放大作業限制為 50 個執行個體。 此限制可協助防止因攻擊而導致且成本高昂的失控擴充。 同樣地,當平均 CPU 使用率降到低於 50% 時,您需要縮小規模。
這些是經常用來監視虛擬機器擴展集的常用計量:
- 百分比 CPU:此計量能指出所有執行個體上的 CPU 使用量。 高值代表執行個體成為 CPU-bound,這可能會延遲用戶端要求的處理。
- 連入流量和連出流量:這些計量會顯示網路流量在擴展集的虛擬機器中流入及流出的速度。
- 磁碟讀取作業/每秒和磁碟寫入作業/每秒:這些計量會顯示擴展集上的磁碟 I/O 量。
- 資料磁碟佇列深度:此計量顯示僅虛擬機器上的資料磁碟有多少 I/O 要求正在等待服務。
規模調整規則會彙總針對所有執行個體所擷取之某個計量的值。 它會彙總一段時間內的值,這段時間稱為時間粒紋。 每個計量都有內建的時間粒紋,但這段期間通常為一分鐘。 彙總值稱為時間彙總。 可用的時間彙總選項為 平均值、最小值、最大值、總計、上次 與 計數。
一分鐘的間隔可能不足以用來判斷計量中任何變更的持續時間是否值得進行自動規模調整。 比例尺規則會採取第二步,在使用者指定的更長時間段內進一步彙總時間匯總值。 這段期間稱為持續時間。 最小的持續時間為五分鐘。 例如,如果持續時間設定為 10 分鐘,則規模調整規則會彙總針對時間粒紋計算的 10 個值。
持續時間的彙總計算可能與時間粒度的彙總計算不同。 例如,假設時間彙總是平均值,而統計資料則是在一分鐘的時間粒紋上收集到的百分比 CPU。 每分鐘都會計算該分鐘內所有執行個體上的平均 CPU 百分比使用率。 如果時間粒紋統計數據設定為 最大值,且規則的持續時間設定為10分鐘。 然後,CPU 使用量百分比的10個平均值上限會決定是否已超過規則閾值。
當規模調整規則偵測到計量超過閾值時,其會執行規模調整動作。 規模調整動作可以是相應放大或相應縮小。 相應放大動作會增加執行個體的數目。 相應縮小動作會減少執行個體計數。
範圍動作會使用運算符,例如 小於、大於 或 等於,以決定如何響應臨界值。 相應放大動作通常會使用大於運算子來比較計量值和閾值。 相應縮小動作傾向使用小於運算子來比較計量值和閾值。 規模調整動作也會將執行個體計數設定為特定層級,而不是增加或減少可用數目。
規模調整動作有「冷卻」期間,以分鐘為單位。 在此期間,規模規則不會再次觸發。 此冷卻可讓系統在規模調整事件之間保持穩定。 啟動或關閉執行個體都需要時間,所以所收集的任何計量在幾分鐘內都可能不會顯示重大變更。 最小冷卻期間為五分鐘。
最後,您應該規劃工作負載減少時進行縮減。 請考慮在同一規模調整條件中定義成對的規模調整規則。 當度量標準超過閾值上限時,應該有一個調整規則來指示如何擴展系統。 另一個規則必須定義當相同的計量低於閾值下限時,如何將系統再次相應縮小。 請不要使這兩個閾值相同。 否則,您可能會觸發一系列重新擴增和縮減的振盪事件。
下列影像顯示在 Azure 入口網站中定義的規模調整規則。
