配置项作用 #
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_interval | 1m | 保活检查间隔 |
search.default_keep_alive | 5m | 默认保活时间 |
search.max_keep_alive | 24h | 最大保活时间 |
工作原理 #
保活检查机制:
┌─────────────────────────────────────────────────────────────────┐
│ 保活检查机制 │
└─────────────────────────────────────────────────────────────────┘
定时任务启动
│
▼
等待 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 | 推荐间隔 | 说明 |
|---|---|---|
| 30s | 10s | 短保活,频繁检查 |
| 1m | 30s-1m | 标准配置 |
| 5m | 1-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
注意事项 #
- 动态更新:此配置为动态配置,可在线修改
- 与 keep_alive 配合:间隔应小于 default_keep_alive
- 检查开销:频繁检查会增加系统开销
- 清理延迟:间隔越大,清理延迟越大
- 合理设置:根据保活时间调整检查频率





