你当前正在访问 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 ,单节点总 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 |
注意
未定义或定义为 null
的限制,取自 default
工作负荷组的请求限制策略。
CPU 资源使用情况
查询可以使用群集中的所有 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
。 - 对于工作负荷组中的特定命令类型
default
,例如.export
命令和 从查询 命令(如.set-or-append
和.set-or-replace
)引入,请求限制处于关闭状态。 将这些命令分配给非默认工作负荷组时,策略中指定的请求限制将变得适用。
示例
以下 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"
}
}
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈