要求限制原則
工作負載群組的要求限制原則允許在要求執行期間限制要求所使用的資源。
原則物件
每個限制都包含:
- 具類型的
Value
- 限制的值。 -
IsRelaxable
- 布爾值,定義呼叫端是否可以放寬限制,做為要求 要求屬性的一部分。
下列限制可設定:
財產 | 類型 | 描述 | 支援的值 | 比對用戶端要求屬性 |
---|---|---|---|---|
DataScope | string |
查詢的數據範圍。 這個值會判斷查詢是套用至所有數據,還是只套用熱快取。 |
All 、HotCache 或 null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
查詢可以配置的記憶體數量上限(以位元組為單位)。 | [1 , 50% 單一節點的總 RAM] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
查詢 運算符可以配置的記憶體數量上限(以位元組為單位)。 | [1 , Min(32212254720 , 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 , Min(32212254720 , 50% 單一節點的總 RAM] ] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
每個節點上要展開查詢執行的線程百分比。 當設定為 100%時,Eventhouse 會指派每個節點上的所有 CPU。 例如,部署在 Azure D14_v2 節點上之 eventhouse 上的 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
工作負載群組中的所有限制IsRelaxable
設定為true
。 工作負載群組內的特定命令類型會關閉要求限制,例如 命令和從查詢 命令擷取 擷取。 當這些命令指派給非預設工作負載群組時,原則中指定的要求限制就會變成適用。
例
下列 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"
}
}