計算節流限制
適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集
Microsoft Compute 會實作節流機制,協助服務的整體效能,為客戶提供一致的體驗。 超過允許限制上限的 API 要求會受到節流,且使用者會收到 HTTP 429 錯誤。 所有計算節流原則都會以每個區域為基礎實作。
節流原則如何運作?
Microsoft Compute 會實作節流原則,以限制每個資源提出的 API 要求數目,以及每分鐘每個區域的每個訂用帳戶數目。 如果 API 要求數目超過這些限制,則會節流要求。 以下是這些限制的運作方式:
每個資源限制 - 每個資源,例如虛擬機器 (VM),都有 API 要求的特定限制。 例如,讓我們假設使用者會在訂用帳戶中建立 10 部 VM。 使用者最多可以在一分鐘內叫用每個 VM 的 12 個更新要求。 如果使用者超過 VM 的限制,API 要求會受到節流。 此限制可確保少數資源不會取用訂用帳戶層級限制,並節流其他資源。
訂用帳戶限制 - 除了資源限制之外,訂用帳戶內所有資源的 API 要求數目還有總限制。 不論是否已達到個別資源的限制,超出此限制的任何 API 要求都會受到節流。 例如,讓我們假設使用者會在訂用帳戶中有 200 部 VM。 即使使用者有權為每個 VM 起始最多 12 個更新 VM 要求,更新 VM API 要求的彙總限制上限為每分鐘 1500 個。 針對超過 1500 的訂用帳戶,任何更新 VM API 要求會受到節流。
Microsoft Compute 如何判斷節流限制?
若要判斷每個資源和訂用帳戶的限制,Microsoft Compute 會使用權杖貯體演算法。此演算法會為每個限制建立貯體,並在每個貯體中保留特定數目的權杖。 貯體中的權杖數目代表任何指定的分鐘節流限制。
在節流窗口開始時,建立資源時,貯體會填入容量上限。 使用者起始的每個 API 要求都會取用一個權杖。 當權杖計數耗盡至零時,會節流後續的 API 要求。 貯體會以稱為貯體重新填入率資源與訂用帳戶的一致費率,每分鐘以一致的費率補充新的權杖。
例如:讓我們考慮 VM「更新 API 的節流原則」,其中規定每分鐘的貯體重新填入速率為 4 個權杖,以及最大貯體容量為 12 個權杖。 根據下表,使用者會叫用虛擬機器的更新 VM API 要求。 一開始,貯體會在節流視窗開始時填入 12 個權杖。 到第四分鐘,使用者會取用所有 12 個權杖,讓貯體保持空白。 第五分鐘,貯體會根據貯體重新填滿率,補充四個新權杖。 因此,四個 API 要求可以在第五分鐘提出,而 Microsoft 計算會因為權杖不足而節流一個 API 要求。
(分鐘) | 1 | 第 2 個 | 第三 | 第 4 個 | 第 5 | 第 6 個 |
---|---|---|---|---|---|---|
開頭中的權杖數目 (A) | 12 | 12 | 8 | 12 | 4 | 4 |
每分鐘的要求 (B) | 0 | 8 | 0 | 13 | 5 | 0 |
節流的要求 (C) | 0 | 0 | 0 | 1 | 1 | 0 |
期間結束時剩餘的權杖 D = 最高(A-B, 0) |
12 | 4 | 8 | 0 | 0 | 4 |
遵循類似的程式來判斷訂用帳戶層級的節流限制。 下列各節詳述貯體重新填入率和最大貯體容量,用來判斷虛擬機器的節流限制、虛擬機器擴展集和虛擬機器擴展集 VM。
虛擬機器的節流限制
虛擬機器的 API 要求會分類為七個不同的原則。 每個原則都有自己的限制,視該原則下 API 要求的資源密集程度而定。 下表包含這些原則的完整清單、對應的 REST API 及其各自的節流限制:
原則類別 | REST API | 資源層級 | 資源層級 | 訂用帳戶層級 | 訂用帳戶層級 |
---|---|---|---|---|---|
貯體重新填滿率 (每分鐘) | 貯體容量上限 (每分鐘) |
貯體重新填滿率 (每分鐘) |
貯體容量上限 (每分鐘) |
||
放置 VM (建立新 VM) |
建立 | 4 | 12 | 500 | 1,500 |
更新 VM (更新現有的 VM) |
更新 重新套用 重新啟動 關閉電源 啟動 一般化 轉換為受控磁碟 重新部署 執行維護 擷取 執行命令 建立或更新 延伸模組 - 更新 延伸模組 - 刪除 重新安裝映像 更新 執行命令 - 更新 執行命令 - 刪除 執行命令 - 建立或更新 |
4 | 12 | 500 | 1,500 |
刪除 VM (刪除 VM) |
刪除 模擬收回 解除配置 |
4 | 12 | 500 | 1,500 |
低成本取得 VM (取得單一 VM 的資訊) |
Get 執行個體檢視 延伸模組 - 取得 列出可用的大小 擷取開機診斷資料 執行命令 - 依虛擬機器取得 執行命令 - 依虛擬機器列出 |
12 | 36 | 8,000 | 24,000 |
高成本取得 VM1 (取得多個 VM 的相關資訊) |
清單 全部列出 依位置列出 |
NA | NA | 300 | 900 |
取得作業 (取得非同步 VM 作業的相關資訊) |
非同步作業狀態 | 15 | 45 | 5,000 | 15,000 |
VM 來賓修補作業 (評估及安裝來賓修補程式) |
評估修補程式 安裝修補程式 |
2 | 6 | 200 | 600 |
1 僅適用訂用帳戶層級原則。
虛擬機器擴展集的節流限制
虛擬機器擴展集 (Uniform & Flex) 的 API 要求會分類為 5 個不同的原則。 每個原則都有自己的限制,視該原則下 API 要求的資源密集程度而定。 這些原則同時適用於 Flex 和 Uniform 協調流程模式。 下表包含這些原則的完整清單、對應的 REST API 及其各自的節流限制:
原則類別 | REST API | 資源層級 | 資源層級 | 訂用帳戶層級 | 訂用帳戶層級 |
---|---|---|---|---|---|
貯體重新填滿率 (每分鐘) |
貯體容量上限 (每分鐘) |
貯體重新填滿率 (每分鐘) | 貯體容量上限 (每分鐘) |
||
Put (建立新的擴充集) |
建立 | 4 | 12 | 125 | 375 |
更新 (更新現有擴展集) |
更新 開始2 重新啟動2 重新部署2 執行維護2 重新映像2 全部重新安裝映像2 建立或更新 輪流升級 - 取消 延伸模組 - 建立 延伸模組 - 更新 延伸模組 - 刪除 強制復原 Service Fabric 平台更新網域逐步解說 轉換成單一放置群組 設定協調流程服務狀態 |
4 | 12 | 500 | 1,500 |
刪除 (刪除擴展集) |
刪除 關閉電源2 解除配置 |
4 | 12 | 175 | 525 |
低成本取得 (取得單一擴展集的資訊) |
Get 列出 Skus 輪流升級 - 取得最新資訊 取得 OS 升級歷程記錄 |
12 | 36 | 800 | 2,400 |
高成本取得 (取得資源密集資訊) |
取得執行個體檢視 清單2 全部列出2 依位置列出2 |
10 | 30 | 360 | 1,080 |
2 僅適用訂用帳戶層級原則。
虛擬機器擴展集虛擬機器的節流限制
虛擬機器擴展集虛擬機器的 API 要求會分類為 3 個不同的原則。 每個原則都有自己的限制,視該原則下 API 要求的資源密集程度而定。 下表包含這些原則的完整清單、對應的 REST API 及其各自的節流限制:
原則類別 | REST API | 資源層級 | 資源層級 | 訂用帳戶層級 | 訂用帳戶層級 |
---|---|---|---|---|---|
貯體重新填滿率 (每分鐘) |
貯體容量上限 (每分鐘) |
貯體重新填滿率 (每分鐘) |
貯體容量上限 (每分鐘) |
||
更新擴展集 VM (在擴展集中更新現有 VM) |
啟動 重新啟動 重新安裝映像 ReimageAll 更新 SimulateEviction 延伸模組 - 建立或更新 RunCommands - 建立或更新 RunCommands - 更新 |
4 | 12 | 500 | 1,500 |
刪除擴展集 VM (刪除擴展集 VM) |
刪除 PowerOff 解除配置 延伸模組 - 刪除 RunCommands - 刪除 |
4 | 12 | 500 | 1,500 |
取得擴展集 VM (取得擴展集 VM 的資訊) |
Get GetInstance 檢視 延伸模組 - 取得 RunCommands - 取得 RetrieveBoot 診斷資料 |
12 | 36 | 2,000 | 6,000 |
疑難排解方針
如果使用者因計算節流而面臨挑戰,請參閱針對 Azure 中的節流錯誤進行疑難解答 - 虛擬機器。 詳細解說如何對節流問題進行疑難排解,以及避免受到節流的最佳做法。
常見問題集
使用者是否需要採取任何動作?
使用者不需要變更其設定或工作負載中的任何項目。 所有現有的 API 都會依現狀繼續運作。
節流原則有哪些優點?
節流原則有數個優點:
所有計算資源都有一個 1 分鐘統一視窗。 使用者可在節流後成功叫用 API 呼叫達 1 分鐘。
任何單一資源都無法使用訂用帳戶下的所有限制,因為資源層級會定義限制。
Microsoft Compute 引進了新的演算法權杖貯體演算法,以判斷限制。 此演算法會為客戶提供額外的緩衝區,同時提出大量 API 要求。
當客戶即將達到節流限制時,是否會收到警示?
若要判斷每個資源和訂用帳戶的限制,Microsoft Compute 會使用權杖貯體演算法。 會傳回適用節流原則的清單,以回應呼叫率資訊標頭。