共用方式為


要求速率限制原則

適用於:✅Microsoft FabricAzure 數據總管

工作負載群組的要求速率限制原則可讓您限制分類為工作負載群組、每個工作負載群組或每個主體的並行要求數目。

速率限制會在工作負載群組 要求速率限制強制執行原則所定義的層級強制執行。

原則物件

要求速率限制原則具有下列屬性:

名字 支援的值 描述
IsEnabled truefalse 指出是否啟用原則。
範圍 WorkloadGroupPrincipal 套用限制的範圍。
LimitKind ConcurrentRequestsResourceUtilization 要求速率限制的類型。
性能 屬性包 要求速率限制的屬性。

並行要求速率限制

ConcurrentRequests 類型的要求速率限制包含下列屬性:

名字 類型 描述 支援的值
MaxConcurrentRequests int 並行要求的數目上限。 [010000]

注意

  • 如果工作負載群組在並行要求上限上沒有指定的限制,則會受限於預設的最大值 10000

當要求超過並行要求數目上限時:

  • 要求的狀態,如 系統資訊命令所呈現,將會 Throttled
  • 錯誤訊息會包含節流 來源,以及超過的 容量

下表顯示一些並行要求範例,這些要求會傳回上限和錯誤訊息:

場景 錯誤資訊
已節流 .create table 命令,分類為 default 工作負載群組,其工作負載群組範圍有80個並行要求的限制。 管理命令因節流而中止。 在某些輪詢之後重試可能會成功。 CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'。
已分類為名為 MyWorkloadGroup的工作負載群組的節流查詢,其限制在工作負載群組的範圍內有 50 個並行要求。 查詢因為節流而中止。 在某些輪詢之後重試可能會成功。 容量:50,來源:'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'。
已分類至名為 MyWorkloadGroup的工作負載群組的節流查詢,其限制在主體範圍有 10 個並行要求。 查詢因為節流而中止。 在某些輪詢之後重試可能會成功。 容量:10,來源:'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724;6ccf3fe8-6343-4be5-96c3-29a128dd9570'。
  • HTTP 回應碼將會 429。 子程式代碼將會 TooManyRequests
  • 系統會針對查詢 QueryThrottledException 例外狀況類型,並針對管理命令 ControlCommandThrottledException

注意

資源使用率限制

ResourceUtilization 類型的要求速率限制包含下列屬性:

名字 類型 描述 支援的值
ResourceKind ResourceKind 要限制的資源。

ResourceKindTotalCpuSeconds時,會根據已完成要求的 CPU 使用率後執行報告強制執行限制。 不會計算報告 CPU 或更低秒 0.005 秒使用率的要求。 限制 (MaxUtilization) 代表要求在指定時間範圍內耗用的總 CPU 秒數(TimeWindow)。 例如,執行臨機操作查詢的使用者每小時可能會有1000個CPU秒的限制。 如果超過此限制,即使同時啟動,後續查詢也會受到節流,因為累計 CPU 秒已超過滑動期間內定義的限制。
RequestCountTotalCpuSeconds
MaxUtilization long 可使用的資源上限。 RequestCount: [116777215];TotalCpuSeconds: [1828000]
TimeWindow timespan 套用限制的滑動時間範圍。 [00:00:0101:00:00]

當要求超過資源使用率的限制時:

  • 要求的狀態,如 系統資訊命令所呈現,將會 Throttled
  • 錯誤訊息會包含節流 來源,以及超過的 配額。 例如:

下表顯示一些超過資源使用率限制的要求範例,以及這些要求傳回的錯誤訊息:

場景 錯誤資訊
分類為名為 Automated Requests之工作負載群組的節流要求,其限制為主體範圍每小時 1000 個要求。 要求因為超過配額限制而遭到拒絕。 資源: 'RequestCount', 配額: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724;6ccf3fe8-6343-4be5-96c3-29a128dd9570'。
節流要求,已分類為名為 Automated Requests的工作負載群組,其限制為工作負載群組範圍每小時 2000 個 CPU 秒總計。 要求因為超過配額限制而遭到拒絕。 資源:'TotalCpuSeconds',配額:'2000',TimeWindow: '01:00:00',Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'。
  • HTTP 回應碼將會 429。 子程式代碼將會 TooManyRequests
  • 例外狀況類型將會 QuotaExceededException

一致性如何影響速率限制

使用強式一致性時,並行要求上限的預設限制取決於叢集的 SKU,並計算為:Cores-Per-Node x 10。 例如,使用 Azure D14_v2 節點設定的叢集,其中每個節點都有 16 個虛擬核心,其預設限制為 x 1610 = 160

使用弱式一致性時,最大並行要求的有效預設限制取決於叢集的SKU和查詢標頭數目,並計算為:Cores-Per-Node x 10 x Number-Of-Query-Heads。 例如,使用 Azure D14_v2 和 5 個查詢前端設定的叢集,其中每個節點都有 16 個虛擬核心,其有效預設限制為 x 16 x 10 x 5 = 800

使用強式一致性時,並行要求上限的預設限制取決於 eventhouse 的 SKU,並計算為:Cores-Per-Node x 10。 例如,使用 Azure D14_v2 節點設定的 eventhouse,其中每個節點都有 16 個虛擬核心,其預設限制為 x 1610 = 160

使用弱式一致性時,最大並行要求的有效預設限制取決於 eventhouse 的 SKU 和查詢標頭數目,並計算為:Cores-Per-Node x 10 x Number-Of-Query-Heads。 例如,使用 Azure D14_v2 和 5 個查詢前端所設定的 eventhouse,其中每個節點都有 16 個虛擬核心,會有有效的預設限制 16 x 10 x 5 = 800

如需詳細資訊,請參閱 查詢一致性

default 工作負載群組

default 工作負載群組預設會定義下列原則。 您可以改變此原則。

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": < Cores-Per-Node x 10 >
    }
  }
]

注意

  • 當您變更 default 工作負載群組的原則時,必須針對並行要求上限定義限制。

例子

下列原則最多允許:

  • 工作負載群組的 500 個並行要求。
  • 每個主體 25 個並行要求。
  • 每小時每個主體 50 個要求。
[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 500
    }
  },
  {
    "IsEnabled": true,
    "Scope": "Principal",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 25
    }
  },
  {
    "IsEnabled": true,
    "Scope": "Principal",
    "LimitKind": "ResourceUtilization",
    "Properties": {
      "ResourceKind": "RequestCount",
      "MaxUtilization": 50,
      "TimeWindow": "01:00:00"
    }
  }
]

下列原則會封鎖分類至工作負載群組的所有要求:

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 0
    }
  },
]