要求レート制限ポリシー
ワークロード グループの要求レート制限ポリシーを使用すると、ワークロード グループ、ワークロード グループ、またはプリンシパルごとに分類される同時要求の数を制限できます。
レート制限は、ワークロード グループの 要求レート制限適用ポリシーによって定義されたレベルで適用されます。
ポリシー オブジェクト
要求レート制限ポリシーには、次のプロパティがあります。
名前 | サポートされている値 | 形容 |
---|---|---|
IsEnabled |
true 、false |
ポリシーが有効かどうかを示します。 |
スコープ |
WorkloadGroup 、Principal |
制限が適用されるスコープ。 |
LimitKind |
ConcurrentRequests 、ResourceUtilization |
要求レート制限の種類。 |
プロパティ | プロパティ バッグ | 要求レート制限のプロパティ。 |
同時要求のレート制限
種類 ConcurrentRequests
の要求レート制限には、次のプロパティが含まれます。
名前 | 種類 | 形容 | サポートされている値 |
---|---|---|---|
MaxConcurrentRequests | int |
同時要求の最大数。 | [0 , 10000 ] |
手記
- ワークロード グループが同時要求の最大数に対して指定された制限を持っていない場合は、既定の最大値である
10000
が適用されます。
要求が同時要求の最大数の制限を超えた場合:
-
システム情報コマンド表示される要求の状態は、
Throttled
されます。 - エラー メッセージには、調整の 配信元の と、超過した 容量 が含まれます。
次の表は、上限を超える同時要求の例と、これらの要求が返すエラー メッセージを示しています。
シナリオ | エラーメッセージ |
---|---|
default ワークロード グループに分類された調整された .create table コマンド。ワークロード グループのスコープでの同時要求数は 80 個に制限されています。 |
調整のため、管理コマンドが中止されました。 バックオフ後の再試行が成功する可能性があります。 CommandType: 'TableCreate'、Capacity: 80、Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'。 |
MyWorkloadGroup という名前のワークロード グループに分類された調整されたクエリ。ワークロード グループのスコープでの同時要求数は 50 個に制限されています。 |
スロットルが原因でクエリが中止されました。 バックオフ後の再試行が成功する可能性があります。 容量: 50、配信元: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'。 |
MyWorkloadGroup という名前のワークロード グループに分類された調整されたクエリ。プリンシパルのスコープでの同時要求数は 10 個に制限されています。 |
スロットルが原因でクエリが中止されました。 バックオフ後の再試行が成功する可能性があります。 容量: 10, Origin: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724;6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
- HTTP 応答コードが
429
されます。 サブコードがTooManyRequests
されます。 - 例外の種類は、クエリに対して
QueryThrottledException
され、管理コマンドのControlCommandThrottledException
されます。
手記
リソース使用率の制限
種類 ResourceUtilization
の要求レート制限には、次のプロパティが含まれます。
名前 | 種類 | 形容 | サポートされている値 |
---|---|---|---|
ResourceKind | ResourceKind |
制限するリソース。ResourceKind が TotalCpuSeconds されると、完了した要求の CPU 使用率の実行後レポートに基づいて制限が適用されます。 0.005 秒以下の CPU 使用率を報告する要求はカウントされません。 制限 (MaxUtilization ) は、指定された時間枠 (TimeWindow ) 内の要求で使用できる CPU の合計秒数を表します。 たとえば、アドホック クエリを実行しているユーザーには、1 時間あたり 1000 CPU 秒という制限がある場合があります。 この制限を超えた場合、累積 CPU 秒がスライディング ウィンドウ期間内に定義された制限を超えたので、同時に開始された場合でも、後続のクエリは調整されます。 |
RequestCount 、TotalCpuSeconds |
MaxUtilization | long |
使用できるリソースの最大値。 | RequestCount: [1 , 16777215 ];TotalCpuSeconds: [1 , 828000 ] |
TimeWindow | timespan |
制限が適用されるスライディング 時間枠。 | [00:01:00 , 1.00:00:00 ] |
要求がリソース使用率の制限を超えた場合:
-
システム情報コマンド表示される要求の状態は、
Throttled
されます。 - エラー メッセージには、調整の
配信元の と、超過したクォータが含まれます。 例えば:
次の表は、リソース使用率の制限を超える要求の例と、これらの要求が返すエラー メッセージを示しています。
シナリオ | エラーメッセージ |
---|---|
Automated Requests という名前のワークロード グループに分類された調整された要求。プリンシパルのスコープでは、1 時間あたり 1000 要求の制限があります。 |
クォータ制限を超えたため、要求が拒否されました。 Resource: 'RequestCount', Quota: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724;6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
Automated Requests という名前のワークロード グループに分類された調整された要求。ワークロード グループのスコープで、1 時間あたり合計 CPU 秒が 2000 に制限されています。 |
クォータ制限を超えたため、要求が拒否されました。 リソース: 'TotalCpuSeconds'、クォータ: '2000'、TimeWindow: '01:00:00'、Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'。 |
- HTTP 応答コードが
429
されます。 サブコードがTooManyRequests
されます。 - 例外の種類が
QuotaExceededException
されます。
整合性がレート制限に与える影響
厳密な整合性では、同時要求の最大数に対する既定の制限はクラスターの SKU によって異なり、Cores-Per-Node x 10
として計算されます。 たとえば、各ノードに 16 個の仮想コアがある Azure D14_v2 ノードを使用して設定されたクラスターには、既定で 16
x 10
= 160
の制限があります。
一貫性が弱い場合、同時要求の最大数に対する有効な既定の制限は、クラスターの SKU とクエリ ヘッドの数によって異なり、Cores-Per-Node x 10 x Number-Of-Query-Heads
として計算されます。 たとえば、Azure D14_v2 と 5 個のクエリ ヘッドを使用して設定されたクラスターでは、各ノードに 16 個の仮想コアがある場合、16
x 10
x 5
= 800
の有効な既定の制限があります。
厳密な整合性では、同時要求の最大数に対する既定の制限はイベントハウスの SKU によって異なり、Cores-Per-Node x 10
として計算されます。 たとえば、各ノードに 16 個の仮想コアがある Azure D14_v2 ノードで設定されたイベントハウスには、既定で 16
x 10
= 160
の制限があります。
一貫性が弱い場合、最大同時要求に対する有効な既定の制限は、イベントハウスの SKU とクエリ ヘッドの数によって異なり、Cores-Per-Node x 10 x Number-Of-Query-Heads
として計算されます。 たとえば、Azure D14_v2 と 5 個のクエリ ヘッドを使用して設定されたイベントハウスでは、各ノードに 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 件の同時要求。
- プリンシパルあたり 1 時間あたり 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
}
},
]
関連コンテンツ
- ワークロード グループ を
する - 要求レート制限適用ポリシーの
- .alter-merge workload_group コマンド を
する - .create-or-alter workload_group コマンド を
する - .drop workload_group コマンド を
する - .show workload_group コマンド を
する