配置项作用 #
indices.cache.cleanup_interval 配置项控制清理已关闭索引缓存的间隔时间。系统定期清理已关闭索引的缓存资源,包括内存中的索引元数据和文件句柄等。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
1m
是否必需 #
可选配置项(有默认值)
取值范围 #
0 ~ 正无穷
配置格式 #
# 默认配置
indices.cache.cleanup_interval: 1m
# 更频繁清理
indices.cache.cleanup_interval: 30s
# 减少清理频率
indices.cache.cleanup_interval: 5m
# 快速清理
indices.cache.cleanup_interval: 10s
工作原理 #
缓存清理机制:
┌─────────────────────────────────────────────────────────────────┐
│ 索引缓存清理 │
└─────────────────────────────────────────────────────────────────┘
定时任务启动
│
▼
等待 cleanup_interval 时间
│
▼
扫描已关闭索引
│
├── 发现已关闭索引
│ │
│ ├── 清理内存缓存
│ ├── 释放文件句柄
│ └── 清理元数据
│
└── 返回,等待下次清理
使用场景 #
1. 默认配置(推荐) #
indices.cache.cleanup_interval: 1m
适用于大多数集群配置。
2. 频繁开关索引 #
indices.cache.cleanup_interval: 30s
适用场景:
- 频繁创建/删除索引
- 大量临时索引
- 需要快速清理
3. 稳定生产环境 #
indices.cache.cleanup_interval: 5m
适用场景:
- 索引变化少
- 减少清理开销
- 稳定的生产环境
4. 资源敏感环境 #
indices.cache.cleanup_interval: 10s
适用场景:
- 内存紧张
- 大量索引操作
- 快速释放资源
推荐设置建议 #
| 索引变更频率 | 推荐间隔 | 说明 |
|---|---|---|
| 默认 | 1m | 标准配置 |
| 频繁变更 | 10-30s | 快速清理 |
| 偶尔变更 | 3-5m | 减少开销 |
| 资源紧张 | 10-30s | 密切清理 |
监控建议 #
# 查看已关闭索引
GET /_cat/indices?v&h=index,status
# 查看节点缓存使用
GET /_nodes/stats/indices?filter_path=**.cache
# 查看打开的索引
GET /_cat/aliases?v
注意事项 #
- 静态配置:修改需要重启节点
- 清理开销:频繁清理会增加系统开销
- 资源释放:更频繁的清理可更快释放资源
- 与索引生命周期配合:配合 ILM 使用效果更佳
- 平衡性能与资源:根据资源压力调整间隔





