容量策略
适用于:✅Azure 数据资源管理器
容量策略用于控制群集上数据管理操作的计算资源。
容量策略对象
容量策略由以下组件构成:
- IngestionCapacity
- ExtentsMergeCapacity
- ExtentsPurgeRebuildCapacity
- ExportCapacity
- ExtentsPartitionCapacity
- MaterializedViewsCapacity
- StoredQueryResultsCapacity
- StreamingIngestionPostProcessingCapacity
- PurgeStorageArtifactsCleanupCapacity
- PeriodicStorageArtifactsCleanupCapacity
若要查看群集的容量,请使用 .showcapacity 命令。
引入容量
属性 | 类型 | 描述 |
---|---|---|
ClusterMaximumConcurrentOperations |
long |
群集中允许的并发引入操作的最大数目。 该值限制了总引入容量,如以下公式所示。 |
CoreUtilizationCoefficient |
real |
确定要在引入容量计算中使用的核心百分比。 |
公式
.showcapacity 命令根据以下公式返回群集的引入容量:
Minimum(ClusterMaximumConcurrentOperations
,
群集中的节点数*
Maximum(1,
每个节点的核心计数*
CoreUtilizationCoefficient))
注意
在具有四个或四个以上节点的群集中,管理节点不参与引入操作,因此“群集中的节点数”会减少 1。
盘区合并容量
属性 | 类型 | 描述 |
---|---|---|
MinimumConcurrentOperationsPerNode |
long |
单个节点上的并发盘区合并/重新生成操作的最小数量。 默认值为 1 。 |
MaximumConcurrentOperationsPerNode |
long |
单个节点上的并发盘区合并/重新生成操作的最大数量。 默认值为 5 。 |
公式
.showcapacity 命令根据以下公式返回群集的盘区合并容量:
群集中的节点数 *
每个节点的并发操作数
“每个节点的并发操作数”的有效值在 [MinimumConcurrentOperationsPerNode
,MaximumConcurrentOperationsPerNode
] 范围内由系统自动调整,前提是合并操作的成功率等于或高于 90%。
注意
在具有四个或四个以上节点的群集中,管理节点不参与并发操作,因此“群集中的节点数”会减少 1。
盘区清除重新生成容量
属性 | 类型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerNode |
long |
单个节点上清除操作的并发重新生成盘区的最大数量。 |
公式
.showcapacity 命令根据以下公式返回群集的盘区清除重新生成容量:
群集中的节点数 x MaximumConcurrentOperationsPerNode
注意
在具有四个或更多节点的群集中,管理节点不参与清除操作,因此“群集中的节点数”将减少 1。
导出容量
属性 | 类型 | 描述 |
---|---|---|
ClusterMaximumConcurrentOperations |
long |
群集中的并发导出操作的最大数量。 该值限制了总导出容量,如以下公式所示。 |
CoreUtilizationCoefficient |
long |
确定要在导出容量计算中使用的核心百分比。 |
公式
.showcapacity 命令根据以下公式返回群集的导出容量:
Minimum(ClusterMaximumConcurrentOperations
,
群集中的节点数*
Maximum(1,
每个节点的核心计数*
CoreUtilizationCoefficient))
注意
在具有四个或以上节点的群集中,管理节点不参与导出操作。 Number of nodes in cluster
减少 1 个。
盘区分区容量
属性 | 类型 | 描述 |
---|---|---|
ClusterMinimumConcurrentOperations |
long |
群集中的并发盘区分区操作的最小数量。 默认值为 1 。 |
ClusterMaximumConcurrentOperations |
long |
群集中的并发盘区分区操作的最大数量。 默认为 32 。 |
“并发操作数”的有效值在 [ClusterMinimumConcurrentOperations
,ClusterMaximumConcurrentOperations
] 范围内由系统自动调整,前提是分区操作的成功率等于或高于 90%。
具体化视图容量策略
该策略可用于更改具体化视图的并发设置。 当群集上定义了多个具体化视图时,更改具体化视图容量策略可能很有用。
properties | 类型 | 描述 |
---|---|---|
ClusterMinimumConcurrentOperations |
long |
群集中的并发具体化操作的最小数量。 默认值为 1 。 |
ClusterMaximumConcurrentOperations |
long |
群集中的并发具体化操作的最大数量。 默认值为 10 。 |
默认情况下,只有一个具体化并发运行(请参阅具体化视图的工作原理)。 系统会根据群集中的具体化视图数量和群集的 CPU 来调整 [ClusterMinimumConcurrentOperations
,ClusterMaximumConcurrentOperations
] 范围内的当前并发。 可以通过更改此策略来增加/减少并发。 例如,如果群集具有十个具体化视图,则将 ClusterMinimumConcurrentOperations
设置为 5 可确保其中至少有 5 个可以并发具体化。
可以使用 .show capacity 命令查看当前并发的有效值
警告
增加 ClusterMinimumConcurrentOperations
可能会导致资源耗尽并降低群集性能。 如果手动更改此策略,请仔细监视群集的运行状况并逐步提高并发。
存储查询结果容量
属性 | 类型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerDbAdmin |
long |
群集管理节点中并发引入操作的最大数目。 |
CoreUtilizationCoefficient |
real |
确定要在存储查询结果创建计算中使用的核心百分比。 |
公式
.showcapacity 命令根据以下公式返回群集的存储查询结果创建容量:
群集中的节点数*
Maximum(1,
每个节点的核心计数*
CoreUtilizationCoefficient)
注意
在具有四个或四个以上节点的群集中,管理节点不参与存储查询结果创建操作,因此“群集中的节点数”会减少 1。
流式引入后处理容量
properties | 类型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerNode |
long |
每个群集节点上的最大并发流式引入后处理操作数。 |
公式
.show capacity 命令根据以下公式返回群集的流式引入后处理容量:
群集中的节点数 x MaximumConcurrentOperationsPerNode
注意
在具有四个或更多节点的群集中,管理节点不参与流式引入后处理,因此“群集中的节点数”将减少 1。
清除存储项目清理容量
properties | 类型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerCluster |
long |
群集上的最大并发清除存储项目清理操作数。 |
公式
.show capacity 命令根据以下公式返回群集的清除存储项目清理容量:
MaximumConcurrentOperationsPerCluster
定期存储项目清理容量
properties | 类型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerCluster |
long |
群集上的最大并发定期存储项目清理操作数。 |
公式
.show capacity 命令根据以下公式返回群集的定期存储项目清理容量:
MaximumConcurrentOperationsPerCluster
默认值
默认容量策略具有以下 JSON 表示形式:
{
"IngestionCapacity": {
"ClusterMaximumConcurrentOperations": 512,
"CoreUtilizationCoefficient": 0.75
},
"ExtentsMergeCapacity": {
"MinimumConcurrentOperationsPerNode": 1,
"MaximumConcurrentOperationsPerNode": 3
},
"ExtentsPurgeRebuildCapacity": {
"MaximumConcurrentOperationsPerNode": 1
},
"ExportCapacity": {
"ClusterMaximumConcurrentOperations": 100,
"CoreUtilizationCoefficient": 0.25
},
"ExtentsPartitionCapacity": {
"ClusterMinimumConcurrentOperations": 1,
"ClusterMaximumConcurrentOperations": 32
},
"MaterializedViewsCapacity": {
"ClusterMaximumConcurrentOperations": 1,
"ExtentsRebuildCapacity": {
"ClusterMaximumConcurrentOperations": 50,
"MaximumConcurrentOperationsPerNode": 5
}
},
"StoredQueryResultsCapacity": {
"MaximumConcurrentOperationsPerDbAdmin": 250,
"CoreUtilizationCoefficient": 0.75
},
"StreamingIngestionPostProcessingCapacity": {
"MaximumConcurrentOperationsPerNode": 4
},
"PurgeStorageArtifactsCleanupCapacity": {
"MaximumConcurrentOperationsPerCluster": 2
},
"PeriodicStorageArtifactsCleanupCapacity": {
"MaximumConcurrentOperationsPerCluster": 2
}
}
管理命令
警告
更改容量策略之前,请咨询支持团队。
- 使用
.show cluster policy capacity
显示群集的当前容量策略。 - 使用
.alter-merge cluster policy capacity
更改群集的容量策略。
管理命令限制
Kusto 限制以下用户启动命令的并发请求数:
- 引入
- 清除
- 全局限制当前固定为每个群集一个。
- 清除重新生成容量在内部用于确定执行清除命令期间的并发重新生成操作数。 清除命令不会因此过程而被阻止/限制,而将以更快或更慢的速度运行,具体取决于清除重新生成容量。
- 导出
- 此限制是在导出容量中定义的。
当群集检测到某个操作超过了并发请求的限制时:
- 该命令的状态(由系统信息命令提供)是
Throttled
。 - 错误消息包括命令类型、限制的源和已超过的容量。 例如:
- 例如:
The management command was aborted due to throttling. Retrying after some backoff might succeed. CommandType: 'TableSetOrAppend', Capacity: 18, Origin: 'CapacityPolicy/Ingestion'
。
- 例如:
- HTTP 响应代码为
429
。 子代码为TooManyRequests
。 - 异常类型为
ControlCommandThrottledException
。
注意
如果超出了工作负荷组的请求速率限制策略所定义的上限,管理命令也可能会受到限制。