產能原則
適用於: ✅Azure 數據總管
容量原則可用來控制叢集上數據管理作業的計算資源。
容量原則物件
容量原則是由下列元件所組成:
- IngestionCapacity
- ExtentsMergeCapacity
- ExtentsPurgeRebuildCapacity
- ExportCapacity
- ExtentsPartitionCapacity
- MaterializedViewsCapacity
- StoredQueryResultsCapacity
- StreamingIngestionPostProcessingCapacity
- PurgeStorageArtifactsCleanupCapacity
- PeriodicStorageArtifactsCleanupCapacity
若要檢視叢集的容量,請使用 .show capacity 命令。
擷取容量
屬性 | 類型 | 描述 |
---|---|---|
ClusterMaximumConcurrentOperations |
long |
叢集中允許的並行擷取作業數目上限。 此值會限制總擷取容量,如下列公式所示。 |
CoreUtilizationCoefficient |
real |
決定要用於擷取容量計算的核心百分比。 |
公式
.show capacity 命令會根據下列公式傳回叢集的擷取容量:
Minimum(ClusterMaximumConcurrentOperations
,
每個節點叢集 Maximum(1,
*
核心計數中的節點數目 *
CoreUtilizationCoefficient))
注意
在具有四個或更多節點的叢集中,系統管理節點不會參與擷取作業,因此 叢集中 的節點數目會減少一個。
範圍合併容量
屬性 | 類型 | 描述 |
---|---|---|
MinimumConcurrentOperationsPerNode |
long |
單一節點上的並行範圍合併/重建作業數目下限。 預設值為 1 。 |
MaximumConcurrentOperationsPerNode |
long |
單一節點上並行範圍合併/重建作業的最大數目。 預設值為 5 。 |
公式
.show capacity 命令會根據下列公式傳回叢集的範圍合併容量:
每個節點叢集 *
並行作業中的節點數目
只要合併作業的成功率為 90% 或更高,每個節點的並行作業有效值就會由系統在 [MinimumConcurrentOperationsPerNode
,MaximumConcurrentOperationsPerNode
] 範圍內自動調整。
注意
在具有四個或更多節點的叢集中,系統管理節點不會參與合併作業,因此 叢集中 的節點數目會減少一個。
範圍清除重建容量
屬性 | 類型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerNode |
long |
單一節點上清除作業的並行重建範圍數目上限。 |
公式
.show capacity 命令會根據下列公式傳回叢集的範圍清除重建容量:
叢集 x 中的節點數目 MaximumConcurrentOperationsPerNode
注意
在具有四個或多個節點的叢集中,系統管理節點不會參與清除作業,因此 叢集中 的節點數目會減少一個。
匯出容量
屬性 | 類型 | 描述 |
---|---|---|
ClusterMaximumConcurrentOperations |
long |
叢集中並行匯出作業的數目上限。 此值會限制導出容量總計,如下列公式所示。 |
CoreUtilizationCoefficient |
long |
決定匯出容量計算中要使用的核心百分比。 |
公式
.show capacity 命令會根據下列公式傳回叢集的導出容量:
Minimum(ClusterMaximumConcurrentOperations
,
每個節點叢集 Maximum(1,
*
核心計數中的節點數目 *
CoreUtilizationCoefficient))
注意
在具有四個或更多節點的叢集中,系統管理節點不會參與導出作業。 會 Number of nodes in cluster
減少一個 。
範圍分割容量
屬性 | 類型 | 描述 |
---|---|---|
ClusterMinimumConcurrentOperations |
long |
叢集中並行範圍分割作業的數目下限。 預設值為 1 。 |
ClusterMaximumConcurrentOperations |
long |
叢集中並行範圍分割作業的數目上限。 預設值為 32 。 |
只要分割作業的成功率為 90% 或更高,並行作業的有效值就會由系統在 [ClusterMinimumConcurrentOperations
,ClusterMaximumConcurrentOperations
] 範圍內自動調整。
具體化檢視容量原則
此原則可用來變更具體化檢視的並行設定。 當叢集上定義的單一具體化檢視超過單一具體化檢視時,變更具體化檢視容量原則可能會很有用。
屬性 | 類型 | 描述 |
---|---|---|
ClusterMinimumConcurrentOperations |
long |
叢集中並行具體化作業的數目下限。 預設值為 1 。 |
ClusterMaximumConcurrentOperations |
long |
叢集中並行具體化作業的最大數目。 預設值為 10 。 |
根據預設,只有單一具體化同時執行(請參閱 具體化檢視的運作方式)。 系統會根據叢集中的具體化檢視數目和叢集 CPU,調整範圍 [ClusterMinimumConcurrentOperations
,ClusterMaximumConcurrentOperations
] 中的目前並行。 您可以藉由改變此原則來增加/減少並行。 例如,如果叢集有十個具體化檢視,請將 設定 ClusterMinimumConcurrentOperations
為5,可確保其中至少有五個可以同時具體化。
您可以使用 .show capacity 命令來檢視目前並行 的有效值
警告
ClusterMinimumConcurrentOperations
提高可能會導致資源耗盡並降低叢集效能。 如果您手動變更此原則,請仔細監視叢集的健康情況,並逐漸增加並行。
預存查詢結果容量
屬性 | 類型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerDbAdmin |
long |
叢集管理節點中的並行擷取作業數目上限。 |
CoreUtilizationCoefficient |
real |
決定要用於預存查詢結果建立計算的核心百分比。 |
公式
.show capacity 命令會根據下列公式傳回叢集的預存查詢結果建立容量:
每個節點叢集 *
Maximum(1,
核心計數中的節點數目 *
CoreUtilizationCoefficient)
注意
在具有四個或更多節點的叢集中,系統管理節點不會參與預存的查詢結果建立作業,因此 叢集中 的節點數目會減少一個。
串流擷取後處理容量
屬性 | 類型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerNode |
long |
每個叢集節點上並行串流擷取後處理作業的最大數目。 |
公式
.show capacity 命令會根據下列公式傳回叢集的串流擷取後處理容量:
叢集 x 中的節點數目 MaximumConcurrentOperationsPerNode
注意
在具有四個或更多節點的叢集中,系統管理節點不會參與串流擷取後處理,因此 叢集中 的節點數目會減少一個。
清除記憶體成品清除容量
屬性 | 類型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerCluster |
long |
叢集上的並行清除記憶體成品清除作業數目上限。 |
公式
.show capacity 命令會根據下列公式傳回叢集的清除記憶體成品清除容量:
MaximumConcurrentOperationsPerCluster
定期記憶體成品清除容量
屬性 | 類型 | 描述 |
---|---|---|
MaximumConcurrentOperationsPerCluster |
long |
叢集上並行定期儲存成品清除作業的最大數目。 |
公式
.show capacity 命令會根據下列公式傳回叢集的定期記憶體成品清除容量:
MaximumConcurrentOperationsPerCluster
Defaults
默認容量原則具有下列 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
。
注意
管理命令也可能因為超出工作負載群組 的要求速率限制原則所定義的限制而進行節流。