要求の制限ポリシー
ワークロード グループの要求制限ポリシーを使用すると、その実行中に要求によって使用されるリソースを制限できます。
ポリシー オブジェクト
各制限は次で構成されます。
- 型指定された
Value
- 制限の値。 -
IsRelaxable
- 要求の 要求プロパティの一部として、呼び出し元が制限を緩和できるかどうかを定義するブール値。
次の制限は構成可能です。
財産 | 種類 | 形容 | サポートされている値 | 照合クライアント要求プロパティ |
---|---|---|---|---|
DataScope | string |
クエリのデータ スコープ。 この値は、クエリがすべてのデータに適用されるか、ホット キャッシュのみに適用されるかを決定します。 |
All 、HotCache 、または null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
クエリが割り当てることができるメモリの最大量 (バイト単位)。 | [1 , 50% の単一ノードの合計 RAM] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
クエリ演算子が割り当てることができるメモリの最大量 (バイト単位)。 | [1 , 50% の単一ノードの合計 RAM] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
クエリ実行をファンアウトする各ノードのスレッドの割合。 100%に設定すると、クラスターは各ノード上のすべての CPU を割り当てます。 たとえば、Azure D14_v2 ノードにデプロイされたクラスター上の 16 個の CPU などです。 | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
クエリ実行をファンアウトするクラスター上のノードの割合。
MaxFanoutThreadsPercentage と同様の方法で機能します。 |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
要求が呼び出し元に返されるレコードの最大数。それ以降は結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨ての制限は、クロスクラスター参照の結果など、サブクエリの中間結果には適用されません。 | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
要求が呼び出し元に返される最大データ サイズ (バイト単位) を超えると、結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨ての制限は、クロスクラスター参照の結果など、サブクエリの中間結果には適用されません。 | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
要求の最大期間。 メモ: 1) これを使用して、の既定の の制限の上に実行時間制限を設定できますが、拡張することはできません。 2) タイムアウト処理は 秒の解決ではなく、クエリが 分実行されないように設計されています。 3) クライアントでのペイロードの読み取りにかかる時間は、タイムアウトの一部として扱われません。 呼び出し元がストリームからデータを取得する速度によって異なります。 4) 実行の中止が完了するまでに時間がかかる場合、合計実行時間が構成された値を超える可能性があります。 |
[00:00:00 , 01:00:00 ] |
servertimeout |
財産 | 種類 | 形容 | サポートされている値 | 照合クライアント要求プロパティ |
---|---|---|---|---|
DataScope | string |
クエリのデータ スコープ。 この値は、クエリがすべてのデータに適用されるか、ホット キャッシュのみに適用されるかを決定します。 |
All 、HotCache 、または null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
クエリが割り当てることができるメモリの最大量 (バイト単位)。 | [1 , 50% の単一ノードの合計 RAM] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
クエリ演算子が割り当てることができるメモリの最大量 (バイト単位)。 | [1 , 50% の単一ノードの合計 RAM] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
クエリ実行をファンアウトする各ノードのスレッドの割合。 100%に設定すると、Eventhouse は各ノードのすべての CPU を割り当てます。 たとえば、Azure D14_v2 ノードにデプロイされたイベントハウス上の 16 個の CPU などです。 | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
クエリ実行をファンアウトする Eventhouse 上のノードの割合。
MaxFanoutThreadsPercentage と同様の方法で機能します。 |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
要求が呼び出し元に返されるレコードの最大数。それ以降は結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨て制限は、クロスイベントハウス参照の結果など、サブクエリの中間結果には適用されません。 | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
要求が呼び出し元に返される最大データ サイズ (バイト単位) を超えると、結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨て制限は、クロスイベントハウス参照の結果など、サブクエリの中間結果には適用されません。 | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
要求の最大期間。 メモ: 1) これを使用して、の既定の の制限の上に実行時間制限を設定できますが、拡張することはできません。 2) タイムアウト処理は 秒の解決ではなく、クエリが 分実行されないように設計されています。 3) クライアントでのペイロードの読み取りにかかる時間は、タイムアウトの一部として扱われません。 呼び出し元がストリームからデータを取得する速度によって異なります。 4) 実行の中止が完了するまでに時間がかかる場合、合計実行時間が構成された値を超える可能性があります。 |
[00:00:00 , 01:00:00 ] |
servertimeout |
手記
定義されていない、または null
として定義されている制限は、default
ワークロード グループの要求制限ポリシーから取得されます。
CPU リソースの使用率
クエリでは、クラスター内のすべての CPU リソースを使用できます。 既定では、複数のクエリが同時に実行されている場合、システムは、公平なラウンドロビンアプローチを使用してリソースを分散します。 この戦略は、アドホック クエリを使用して高パフォーマンスを実現するために最適です。
クエリでは、Eventhouse 内のすべての CPU リソースを使用できます。 既定では、複数のクエリが同時に実行されている場合、システムは、公平なラウンドロビンアプローチを使用してリソースを分散します。 この戦略は、アドホック クエリを使用して高パフォーマンスを実現するために最適です。
ただし、特定のクエリに割り当てられた CPU リソースを制限するシナリオもあります。 たとえば、より長い待機時間に対応できるバックグラウンド ジョブを実行している場合などです。 要求制限ポリシーを使用すると、分散サブクエリ操作の実行時に使用するスレッドまたはノードの割合を低く柔軟に指定できます。 既定の設定は 100%です。
default
ワークロード グループ
default
ワークロード グループには、既定で次のポリシーが定義されています。 このポリシーは変更できます。
{
"DataScope": {
"IsRelaxable": true,
"Value": "All"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": < 50% of a single node's total RAM >
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 5368709120
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 500000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 67108864
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:04:00"
}
}
手記
-
default
ワークロード グループの制限を定義し、null
以外の値を指定する必要があります。 -
default
ワークロード グループ内のすべての制限は、true
に設定IsRelaxable
。 コマンドや、 や などのクエリ コマンドからの 取り込みなど、 ワークロード グループ内の特定のコマンドの種類に対する要求制限は無効になります。 これらのコマンドが既定以外のワークロード グループに割り当てられると、ポリシーで指定された要求制限が適用されます。
例
次の JSON は、カスタム要求の制限ポリシー オブジェクトを表します。
{
"DataScope": {
"IsRelaxable": true,
"Value": "HotCache"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 1000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 33554432
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:01:00"
}
}
関連コンテンツ
- ワークロード グループ を
する - クライアント要求プロパティ
- .alter-merge workload_groupの
- .create-or-alter workload_groupを
する - .drop workload_groupを
する - .show workload_group コマンド を
する