你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
工作负荷组的请求限制策略允许限制请求在执行期间使用的资源。
策略对象
每个限制包括:
- 类型化
Value
- 限制的值。 -
IsRelaxable
- 一个布尔值,用于定义调用方是否可以放宽限制,作为请求 请求属性的一部分。
以下限制是可配置的:
财产 | 类型 | 描述 | 支持的值 | 匹配客户端请求属性 |
---|---|---|---|---|
DataScope | string |
查询的数据范围。 此值确定查询是应用于所有数据还是仅应用于热缓存。 |
All 、HotCache 或 null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
查询可以分配的最大内存量(以字节为单位)。 | [1 ,单个节点的总 RAM的 50% ] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
查询 运算符可以分配的最大内存量(以字节为单位)。 | [1 、Min(32212254720 、单个节点的总 RAM的 50%] |
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 ,单个节点的总 RAM的 50% ] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
查询 运算符可以分配的最大内存量(以字节为单位)。 | [1 、Min(32212254720 、单个节点的总 RAM的 50%] |
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"
}
}