热分片识别
热点分片识别的根本原因分析 (RCA) 允许您识别索引中的热点分片。热点分片是指消耗比其他分片更多资源的异常分片,可能导致索引和搜索性能不佳。热点分片识别 RCA 监控以下指标:
- CPU 利用率
- 堆分配速率
分片可能会因为您的工作负载性质而变热。当您使用 _routing
参数或自定义文档 ID 时,集群中的特定分片或多个分片会频繁接收更新,消耗比其他分片更多的 CPU 和堆资源。
热点分片识别 RCA 会将 CPU 利用率和堆分配速率与它们的阈值进行比较。如果任一指标的使用量超过阈值,则该分片被认为是“热点分片”。
有关热点分片识别 RCA 实现的更多信息,请参阅 热点分片 RCA。
请求示例
以下查询请求热点分片识别:
GET _plugins/_performanceanalyzer/rca?name=HotShardClusterRca
示例响应
响应包含不健康分片的列表:
"HotShardClusterRca": [{
"rca_name": "HotShardClusterRca",
"timestamp": 1680721367563,
"state": "unhealthy",
"HotClusterSummary": [
{
"number_of_nodes": 3,
"number_of_unhealthy_nodes": 1,
"HotNodeSummary": [
{
"node_id": "7kosAbpASsqBoHmHkVXxmw",
"host_address": "192.168.80.4",
"HotResourceSummary": [
{
"resource_type": "cpu usage",
"resource_metric": "cpu usage(num of cores)",
"threshold": 0.027397981341796683,
"value": 0.034449630200405396,
"time_period_seconds": 60,
"meta_data": "ssZw1WRUSHS5DZCW73BOJQ index9 4"
},
{
"resource_type": "heap",
"resource_metric": "heap alloc rate(heap alloc rate in bytes per second)",
"threshold": 7605441.367010161,
"value": 10872119.748328414,
"time_period_seconds": 60,
"meta_data": "ssZw1WRUSHS5DZCW73BOJQ index9 4"
},
{
"resource_type": "heap",
"resource_metric": "heap alloc rate(heap alloc rate in bytes per second)",
"threshold": 7605441.367010161,
"value": 8019622.354388569,
"time_period_seconds": 60,
"meta_data": "QRF4rBM7SNCDr1g3KU6HyA index9 0"
}
]
}
]
}
]
}]
响应正文字段
下表列出了响应字段。
字段 | 类型 | 描述 |
---|---|---|
rca_name | 字符串 | RCA 的名称。在此例中为 “HotShardClusterRca”。 |
时间戳 | 整数 | RCA 的时间戳。 |
state | 对象 | 由 RCA 确定的集群状态。state 可以是 healthy (健康)、unhealthy (不健康)或 unknown (未知)。 |
HotClusterSummary.HotNodeSummary.number_of_nodes | 整数 | 集群中的节点数量。 |
HotClusterSummary.HotNodeSummary.number_of_unhealthy_nodes | 整数 | 发现处于 unhealthy (不健康)状态的节点数量。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.resource_type | 对象 | 导致不健康状态的资源类型,可以是“cpu usage”(CPU 使用率)或“heap”(堆)。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.resource_metric | 字符串 | resource_type 的定义。可以是“cpu usage(num of cores)”(CPU 使用率(核心数))或“heap alloc rate(heap alloc rate in bytes per second)”(堆分配速率(每秒字节堆分配速率))。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.threshold | 浮点型 | 确定资源是否争用的值。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.value | 浮点型 | 资源的当前值。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.time_period_seconds | 时间 | 分片在被声明为健康或不健康之前被监控的时间量。 |
HotClusterSummary.HotNodeSummary.HotResourceSummary.meta_data | 字符串 | 与 resource_type 关联的元数据。 |
在前面的示例响应中,meta_data
是 QRF4rBM7SNCDr1g3KU6HyA index9 0
。meta_data
字符串包含三个字段:
- 节点名称:
QRF4rBM7SNCDr1g3KU6HyA
- 索引名称:
index9
- 分片 ID:
0
这意味着节点 QRF4rBM7SNCDr1g3KU6HyA
上的索引 index9
的分片 0
是热点分片。