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

配置项作用 #

search.keep_alive_interval 配置项控制检查滚动搜索上下文保活状态的间隔时间。系统定期检查滚动上下文是否超过其保活时间(keep_alive),如果超过则清理该上下文。

配置项类型 #

该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。

默认值 #

1m

是否必需 #

可选配置项(有默认值)

取值范围 #

0 ~ 正无穷

配置格式 #

# 默认配置
search.keep_alive_interval: 1m

# 更频繁检查
search.keep_alive_interval: 30s

# 减少检查频率
search.keep_alive_interval: 5m

# 快速清理
search.keep_alive_interval: 10s

相关配置项 #

配置项默认值说明
search.keep_alive_interval1m保活检查间隔
search.default_keep_alive5m默认保活时间
search.max_keep_alive24h最大保活时间

工作原理 #

保活检查机制:

┌─────────────────────────────────────────────────────────────────┐
│                    保活检查机制                                  │
└─────────────────────────────────────────────────────────────────┘

定时任务启动
    │
    ▼
等待 keep_alive_interval
    │
    ▼
检查所有滚动上下文
    │
    ├── 上下文创建时间 + keep_alive < 当前时间
    │   │
    │   └── 保持上下文
    │
    └── 上下文创建时间 + keep_alive >= 当前时间
         │
         └── 清理上下文
             │
             └── 释放资源

使用场景 #

1. 默认配置(推荐) #

search.keep_alive_interval: 1m

适用于大多数集群配置。

2. 快速清理 #

search.keep_alive_interval: 10s

适用场景:

  • 资源紧张
  • 需要快速清理
  • 大量滚动上下文

3. 降低检查开销 #

search.keep_alive_interval: 5m

适用场景:

  • 稳定环境
  • 减少检查开销
  • 长保活时间

4. 短保活场景 #

search.keep_alive_interval: 30s
search.default_keep_alive: 30s

适用场景:

  • 短保活时间
  • 需要及时清理
  • 频繁滚动操作

推荐设置建议 #

default_keep_alive推荐间隔说明
30s10s短保活,频繁检查
1m30s-1m标准配置
5m1-2m长保活,低频检查
10m+2-5m超长保活

监控建议 #

# 查看当前配置
GET /_cluster/settings?filter_path=*.search.keep_alive_interval

# 查看活跃滚动上下文
GET /_nodes/stats/indices/search?filter_path=**.scroll_current

# 查看清理情况
GET /_nodes/stats/indices/search?filter_path=**.scroll_total

注意事项 #

  1. 动态更新:此配置为动态配置,可在线修改
  2. 与 keep_alive 配合:间隔应小于 default_keep_alive
  3. 检查开销:频繁检查会增加系统开销
  4. 清理延迟:间隔越大,清理延迟越大
  5. 合理设置:根据保活时间调整检查频率