配置项作用 #
indices.memory.shard_inactive_time 配置项控制判定分片不活跃的时间阈值。当分片在指定时间内没有索引操作时,系统将其标记为不活跃,并可以释放其索引缓冲区内存,用于其他活跃分片。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
5m
是否必需 #
可选配置项(有默认值)
取值范围 #
0 ~ 正无穷
配置格式 #
# 默认配置
indices.memory.shard_inactive_time: 5m
# 快速内存回收
indices.memory.shard_inactive_time: 1m
# 慢速内存回收
indices.memory.shard_inactive_time: 10m
# 频繁写入场景
indices.memory.shard_inactive_time: 30m
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
indices.memory.interval | 5s | 内存检查间隔 |
indices.memory.shard_inactive_time | 5m | 分片不活跃时间 |
工作原理 #
分片不活跃判定机制:
┌─────────────────────────────────────────────────────────────────┐
│ 分片不活跃检测 │
└─────────────────────────────────────────────────────────────────┘
分片索引操作活跃
│
▼
最后索引操作完成
│
▼
开始计时
│
├── 新索引操作到达
│ │
│ └── 重置计时
│
└── 经过 shard_inactive_time 无操作
│
▼
标记为不活跃
│
├── 写入缓冲区到磁盘
├── 释放索引缓冲区
└── 内存可供其他分片使用
使用场景 #
1. 默认配置(推荐) #
indices.memory.shard_inactive_time: 5m
适用于大多数集群配置。
2. 频繁索引变更 #
indices.memory.shard_inactive_time: 1m
indices.memory.interval: 1s
适用场景:
- 频繁创建/删除索引
- 大量临时索引
- 需要快速释放内存
3. 批量写入场景 #
indices.memory.shard_inactive_time: 30m
适用场景:
- 定时批量写入
- 写入间隔较长
- 避免频繁释放内存
4. 日志索引场景 #
indices.memory.shard_inactive_time: 10m
indices.memory.interval: 5s
适用场景:
- 按时间滚动日志索引
- 旧索引不再写入
- 自动回收内存
推荐设置建议 #
| 索引模式 | 推荐时间 | interval | 说明 |
|---|---|---|---|
| 持续写入 | 10-30m | 5-10s | 避免过早回收 |
| 偶尔写入 | 5m | 5s | 默认配置 |
| 频繁变更 | 1-3m | 1-2s | 快速回收 |
| 日志索引 | 5-10m | 5s | 滚动后回收 |
| 临时索引 | 1m | 1s | 快速释放 |
与 interval 的配合 #
内存回收机制:
interval: 检查频率
shard_inactive_time: 判定不活跃的时间
回收延迟 ≈ interval + shard_inactive_time
示例配置:
interval: 5s
shard_inactive_time: 30s
时间线:
0s: 最后写入操作
5s: 第1次检查 - 活跃
10s: 第2次检查 - 活跃
...
30s: 第6次检查 - 仍活跃
35s: 第7次检查 - 不活跃,释放内存
实际延迟: 30-35秒
监控建议 #
# 查看索引内存使用
GET /_cat/indices?v&h=index,indexing.memory*
# 查看分片状态
GET /_cat/shards?v&h=index,shard,prirep,state,docs
# 查看节点统计
GET /_nodes/stats/indices?filter_path=**.indexing
注意事项 #
- 静态配置:修改需要重启节点
- 与 interval 配合:shard_inactive_time 应远大于 interval
- 过早回收风险:值太小可能导致活跃分片内存被回收
- 延迟回收风险:值太大会延迟内存释放
- 写入模式影响:根据索引写入模式调整
- 批量写入考虑:批量间隔应小于 shard_inactive_time





