--- title: "搜索上下文保活检查间隔配置" date: 2026-03-31 lastmod: 2026-03-31 description: "控制搜索上下文保活检查间隔时间的配置项说明" tags: ["搜索配置", "滚动查询", "资源管理"] summary: "配置项作用 # 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 最大保活时间 工作原理 # 保活检查机制:" --- ## 配置项作用 `search.keep_alive_interval` 配置项控制检查滚动搜索上下文保活状态的间隔时间。系统定期检查滚动上下文是否超过其保活时间(keep_alive),如果超过则清理该上下文。 ## 配置项类型 该配置项为**动态配置**,可以在运行时通过集群设置 API 进行修改。 ## 默认值 ``` 1m ``` ## 是否必需 **可选配置项**(有默认值) ## 取值范围 ``` 0 ~ 正无穷 ``` ## 配置格式 ```yaml # 默认配置 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. 默认配置(推荐) ```yaml search.keep_alive_interval: 1m ``` 适用于大多数集群配置。 ### 2. 快速清理 ```yaml search.keep_alive_interval: 10s ``` **适用场景:** - 资源紧张 - 需要快速清理 - 大量滚动上下文 ### 3. 降低检查开销 ```yaml search.keep_alive_interval: 5m ``` **适用场景:** - 稳定环境 - 减少检查开销 - 长保活时间 ### 4. 短保活场景 ```yaml search.keep_alive_interval: 30s search.default_keep_alive: 30s ``` **适用场景:** - 短保活时间 - 需要及时清理 - 频繁滚动操作 ## 推荐设置建议 | default_keep_alive | 推荐间隔 | 说明 | |-------------------|---------|------| | 30s | 10s | 短保活,频繁检查 | | 1m | 30s-1m | 标准配置 | | 5m | 1-2m | 长保活,低频检查 | | 10m+ | 2-5m | 超长保活 | ## 监控建议 ```bash # 查看当前配置 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. **合理设置**:根据保活时间调整检查频率