容量策略

适用于:✅Azure 数据资源管理器

容量策略用于控制群集上数据管理操作的计算资源。

容量策略对象

容量策略由以下组件构成:

若要查看群集的容量,请使用 .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
  }
}

管理命令

警告

更改容量策略之前,请咨询支持团队。

管理命令限制

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

注意

如果超出了工作负荷组的请求速率限制策略所定义的上限,管理命令也可能会受到限制。