此 API 用于返回集群中待处理任务(Pending Cluster Tasks)的简洁表示。
API #
GET /_cat/pending_tasks
API 的作用 #
以表格形式显示当前集群中等待执行的集群管理任务信息。这些任务通常是需要在主节点上执行的集群级操作,包括:
- 任务插入顺序:任务在队列中的位置
- 等待时间:任务在队列中等待的时间
- 任务优先级:任务的执行优先级
- 任务来源:任务的来源描述
待办任务通常在主节点负载较高或网络延迟较大时堆积。长时间堆积可能表示集群管理操作存在瓶颈。
API 的参数 #
此 API 没有路由参数。
查询字符串参数 #
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
format | string | 可选 | text | 响应格式 可选值: json, yaml, text |
h | string | 可选 | 默认列 | 指定显示的列,逗号分隔 |
help | boolean | 可选 | false | 显示帮助信息 |
local | boolean | 可选 | false | 是否从本地节点获取信息 |
master_timeout | time | 可选 | 30s | 等待主节点响应的超时时间 |
s | string | 可选 | - | 排序列 支持 :asc 和 :desc |
time | string | 可选 | - | 时间显示单位 可选值: d, h, m, s, ms, micros, nanos |
v | boolean | 可选 | false | 详细模式,显示列头 |
返回的字段信息 #
| 列名 | 别名 | 描述 | 对齐方式 |
|---|---|---|---|
insertOrder | o | 任务插入顺序 | 右对齐 |
timeInQueue | t | 任务在队列中的时间 | 右对齐 |
priority | p | 任务优先级 | 左对齐 |
source | s | 任务来源 | 左对齐 |
任务优先级 #
任务优先级从高到低为:
| 优先级 | 描述 |
|---|---|
URGENT | 紧急任务,最高优先级 |
HIGH | 高优先级任务 |
MEDIUM | 中等优先级任务 |
LOW | 低优先级任务 |
LANGUID | 慢速任务,最低优先级 |
请求示例 #
# 查询待办任务
GET /_cat/pending_tasks
# 显示列头
GET /_cat/pending_tasks?v
# 使用 JSON 格式
GET /_cat/pending_tasks?format=json
# 按等待时间降序排序
GET /_cat/pending_tasks?s=timeInQueue:desc
# 设置时间单位为秒
GET /_cat/pending_tasks?time=s
# 只显示特定列
GET /_cat/pending_tasks?h=insertOrder,priority,source
# 显示帮助信息
GET /_cat/pending_tasks?help
响应示例 #
文本格式(默认) #
insertOrder timeInQueue priority source
1 2.3s HIGH update-mapping [index1]
2 1.8s HIGH put-mapping [index2]
3 850ms MEDIUM create-index [index3]
4 120ms LOW cluster_reroute
JSON 格式 #
[
{
"insert_order": "1",
"time_in_queue": "2.3s",
"priority": "HIGH",
"source": "update-mapping [index1]"
},
{
"insert_order": "2",
"time_in_queue": "1.8s",
"priority": "HIGH",
"source": "put-mapping [index2]"
}
]
无待办任务时的响应 #
insertOrder timeInQueue priority source
帮助信息 #
insertOrder | o | task insertion order
timeInQueue | t | time in queue
priority | p | task priority
source | s | task source
使用场景 #
- 集群监控:监控集群管理任务的堆积情况
- 性能诊断:诊断主节点是否过载
- 问题排查:查找导致集群操作缓慢的原因
- 容量规划:评估是否需要增加主节点资源
常见任务来源 #
| 任务来源 | 描述 |
|---|---|
update-mapping | 更新索引映射 |
put-mapping | 添加字段映射 |
create-index | 创建索引 |
delete-index | 删除索引 |
cluster_reroute | 集群路由重分配 |
gateway-meta-state | 网关元数据状态更新 |
master-failover | 主节点故障切换 |
待办任务堆积的原因 #
- 主节点过载:主节点处理能力不足
- 网络延迟:节点间网络通信延迟高
- 频繁的集群状态更新:大量并发的集群管理操作
- 慢速操作:某些耗时操作阻塞了任务队列
排查建议 #
- 检查主节点资源:查看主节点的 CPU、内存使用情况
- 查看任务详情:使用
GET /_cluster/pending_tasks获取更详细的信息 - 优化集群操作:减少频繁的小操作,合并为批量操作
- 增加主节点资源:考虑升级主节点配置
注意事项 #
- 此 API 只支持 GET 方法
- 待办任务列表动态变化,每次查询结果可能不同
- 任务按插入顺序排列,数字越小表示越早进入队列
- 无待办任务时返回空表格
local=true时可能返回过时信息
与相关 API 的配合 #
| API | 功能 |
|---|---|
GET /_cat/pending_tasks | 查看待办任务的简洁视图 |
GET /_cluster/pending_tasks | 查看待办任务的详细信息 |
最佳实践 #
- 定期监控:定期检查待办任务数量和等待时间
- 设置告警:当任务堆积超过阈值时告警
- 分析模式:分析任务来源,找出频繁操作的来源
- 优化操作:优化应用层逻辑,减少不必要的集群管理操作





