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

配置项作用 #

async_search.expired.persisted_response.cleanup_interval 配置项控制过期异步搜索持久化结果清理任务的运行间隔。该清理任务负责从集群中删除已过期的异步搜索结果数据,释放存储空间。

配置项类型 #

该配置项为静态配置,修改后需要重启节点才能生效。

默认值 #

30m(30分钟)

是否必需 #

可选配置项

取值范围 #

5s ~ 无限制
最小值:5秒

工作原理 #

异步搜索结果可以持久化存储到磁盘,以便在搜索完成后仍然可以获取结果。持久化结果清理机制包括:

  1. 由集群管理节点执行:只有当选中的节点成为集群管理节点时,才会执行清理任务
  2. 定期调度:按照配置的间隔定期调度清理任务
  3. 随机选择执行节点:从数据节点中随机选择一个节点来执行实际的删除操作
  4. 清理过期数据:删除所有超过 keep_alive 时间的异步搜索结果

执行流程 #

1. 集群管理节点按配置间隔调度清理任务
        ↓
2. 随机选择一个数据节点执行清理
        ↓
3. 该节点执行 delete-by-query 删除过期结果
        ↓
4. 完成后调度下一次清理任务

使用示例 #

# 默认配置(每30分钟清理一次)
async_search.expired.persisted_response.cleanup_interval: 30m

# 更频繁的清理(每10分钟清理一次)
async_search.expired.persisted_response.cleanup_interval: 10m

# 较少清理(每1小时清理一次)
async_search.expired.persisted_response.cleanup_interval: 1h

# 最小间隔(每5秒清理一次)
async_search.expired.persisted_response.cleanup_interval: 5s

推荐设置建议 #

推荐使用默认值 30m

特殊情况调整:

# 大量异步搜索、存储空间紧张
# 需要更频繁的清理以释放存储空间
async_search.expired.persisted_response.cleanup_interval: 15m

# 异步搜索量少、存储空间充足
# 可以使用较长间隔减少后台任务开销
async_search.expired.persisted_response.cleanup_interval: 1h

配置影响 #

设置值存储释放速度系统开销适用场景
较小(如 10m)较高大量异步搜索,磁盘紧张
默认(30m)适中适中通用场景
较大(如 1h+)较低少量异步搜索,磁盘充足

与活跃上下文清理的区别 #

配置项清理目标执行位置默认间隔
async_search.active.context.reaper_interval内存中的活跃搜索上下文每个节点独立执行5分钟
async_search.expired.persisted_response.cleanup_interval磁盘上的持久化结果集群管理节点调度30分钟

相关配置项 #

  • async_search.max_keep_alive:异步搜索结果的最大保留时间
  • async_search.persist_search_failures:是否持久化失败的搜索结果
  • async_search.active.context.reaper_interval:活跃上下文清理间隔

注意事项 #

  1. 静态配置:修改此配置需要重启节点才能生效
  2. 最小值限制:设置值不能小于 5 秒
  3. 集群管理节点:此清理任务只在集群管理节点上调度
  4. 存储考虑:如果异步搜索结果很大,应该使用较短的清理间隔以避免存储空间不足
  5. 网络开销:清理操作会向数据节点发送请求,间隔过小可能增加网络负担