共用方式為


計算節流限制

適用於: ✔️ 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計算如何判斷節流限制?

若要判斷每個資源和訂用帳戶的限制,Microsoft Compute 會使用 令牌貯體演算法。 此演算法會為每個限制建立貯體,並在每個貯體中保留特定數目的令牌。 貯體中的令牌數目代表任何指定的分鐘節流限制。

在節流窗口開始時,建立資源時,貯體會填入其 最大容量。 使用者起始的每個 API 要求都會取用一個令牌。 當令牌計數耗盡至零時,後續的 API 要求會受到節流。 貯體會以稱為 資源與訂用帳戶的貯體重新填入率 ,每分鐘以一致的費率補充新的令牌。

例如:讓我們考慮 VM 更新 API 的「節流原則」,其中規定每分鐘的貯體重新填入速率為 4 個令牌,以及最大貯體容量為 12 個令牌。 根據下表,用戶會叫用虛擬機的更新 VM API 要求。 一開始,貯體會在節流視窗開始時填入 12 個令牌。 到第四分鐘,使用者會利用所有12個令牌,讓貯體保持空白。 第五分鐘,貯體會根據貯體重新填滿率,補充四個新令牌。 因此,第五分鐘可以提出四個 API 要求,而Microsoft計算會因為令牌不足而節流一個 API 要求。

(分鐘) 1 第二 第三 第 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 = Max(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 僅適用於訂用帳戶層級原則。

虛擬機器擴展集 節流限制

虛擬機擴展集的 API 要求(Uniform & Flex) 會分類為 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
列出 Sku
滾動升級 - 取得最新版
取得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 - Get
RetrieveBoot 診斷數據
12 36 2,000 6,000

疑難排解方針

如果使用者仍然面臨計算節流所造成的挑戰,請參閱針對 Azure 中的節流錯誤進行疑難解答 - 虛擬機器。 其詳細數據說明如何針對節流問題進行疑難解答,以及避免進行節流的最佳做法。

常見問題集

使用者是否需要採取任何動作?

使用者不需要變更其設定或工作負載中的任何專案。 所有現有的 API 都會依現狀繼續運作。

節流原則提供哪些優點?

節流原則提供數個優點:

  • 所有計算資源都有一個統一的視窗 1 分鐘。 用戶可在節流后成功叫用 API 呼叫,1 分鐘。

  • 任何單一資源都無法使用訂用帳戶下的所有限制,因為資源層級會定義限制。

  • Microsoft Compute 引進了新的演算法令牌貯體演算法,以判斷限制。 此演算法會為客戶提供額外的緩衝區,同時提出大量 API 要求。

當客戶即將達到節流限制時,是否會收到警示?

作為每個回應的一部分,Microsoft Compute 會 傳回 x-ms-ratelimit-remaining-resource ,可用來判斷原則的節流限制。 適用的節流原則清單會以回應 通話速率資訊標頭傳回。