📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

此 API 用于返回集群中待处理任务(Pending Cluster Tasks)的简洁表示。

API #

GET /_cat/pending_tasks

API 的作用 #

以表格形式显示当前集群中等待执行的集群管理任务信息。这些任务通常是需要在主节点上执行的集群级操作,包括:

  • 任务插入顺序:任务在队列中的位置
  • 等待时间:任务在队列中等待的时间
  • 任务优先级:任务的执行优先级
  • 任务来源:任务的来源描述

待办任务通常在主节点负载较高或网络延迟较大时堆积。长时间堆积可能表示集群管理操作存在瓶颈。

API 的参数 #

此 API 没有路由参数。

查询字符串参数 #

参数类型是否必需默认值描述
formatstring可选text响应格式
可选值:json, yaml, text
hstring可选默认列指定显示的列,逗号分隔
helpboolean可选false显示帮助信息
localboolean可选false是否从本地节点获取信息
master_timeouttime可选30s等待主节点响应的超时时间
sstring可选-排序列
支持 :asc:desc
timestring可选-时间显示单位
可选值:d, h, m, s, ms, micros, nanos
vboolean可选false详细模式,显示列头

返回的字段信息 #

列名别名描述对齐方式
insertOrdero任务插入顺序右对齐
timeInQueuet任务在队列中的时间右对齐
priorityp任务优先级左对齐
sources任务来源左对齐

任务优先级 #

任务优先级从高到低为:

优先级描述
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

使用场景 #

  1. 集群监控:监控集群管理任务的堆积情况
  2. 性能诊断:诊断主节点是否过载
  3. 问题排查:查找导致集群操作缓慢的原因
  4. 容量规划:评估是否需要增加主节点资源

常见任务来源 #

任务来源描述
update-mapping更新索引映射
put-mapping添加字段映射
create-index创建索引
delete-index删除索引
cluster_reroute集群路由重分配
gateway-meta-state网关元数据状态更新
master-failover主节点故障切换

待办任务堆积的原因 #

  1. 主节点过载:主节点处理能力不足
  2. 网络延迟:节点间网络通信延迟高
  3. 频繁的集群状态更新:大量并发的集群管理操作
  4. 慢速操作:某些耗时操作阻塞了任务队列

排查建议 #

  1. 检查主节点资源:查看主节点的 CPU、内存使用情况
  2. 查看任务详情:使用 GET /_cluster/pending_tasks 获取更详细的信息
  3. 优化集群操作:减少频繁的小操作,合并为批量操作
  4. 增加主节点资源:考虑升级主节点配置

注意事项 #

  1. 此 API 只支持 GET 方法
  2. 待办任务列表动态变化,每次查询结果可能不同
  3. 任务按插入顺序排列,数字越小表示越早进入队列
  4. 无待办任务时返回空表格
  5. local=true 时可能返回过时信息

与相关 API 的配合 #

API功能
GET /_cat/pending_tasks查看待办任务的简洁视图
GET /_cluster/pending_tasks查看待办任务的详细信息

最佳实践 #

  1. 定期监控:定期检查待办任务数量和等待时间
  2. 设置告警:当任务堆积超过阈值时告警
  3. 分析模式:分析任务来源,找出频繁操作的来源
  4. 优化操作:优化应用层逻辑,减少不必要的集群管理操作

相关文档 #