为什么Elasticsearch的单个数据文件夹占用接近70GB存储空间?
原因说明
你看到的hJZCqt9OQ8yRsRBlLCiPYg是Elasticsearch为索引自动生成的唯一UUID,对应目录占用67G通常有以下几个原因:
- 手动删除索引操作未生效:删除时可能输错索引名、或者当时集群处于黄/红异常状态,删除请求未被正常执行,该索引仍然实际存在于集群中
- 遗漏了非日期轮转的索引:你手动删除的只是按日期生成的普通业务日志索引,没有覆盖到系统内置索引(比如
.security权限索引)、或者Fluentd配置异常没有按规则轮转的大索引,这类索引不符合你删除时的时间筛选规则,没有被删除 - 残留的无效分片文件:如果之前集群出现过分片分配失败、索引删除异常的情况,会出现索引已经从集群元数据中移除,但节点本地还残留了未被清理的分片数据文件,这种情况在API中查询不到对应索引
- 段合并延迟:虽然整索引删除一般会在几分钟内清理磁盘文件,但如果你修改过段合并的延迟删除参数,也可能出现删除后文件暂时保留的情况,但你是昨日执行的删除,该场景概率很低
排查解决方法
- 首先查询UUID对应的索引名,调用ES的API:
GET /_cat/indices?v&h=index,uuid
找到uuid为hJZCqt9OQ8yRsRBlLCiPYg对应的索引名称,确认该索引的属性和创建时间
2. 如果能查到对应索引,且确认是需要清理的旧索引,重新执行删除操作即可释放空间:
DELETE /<你查到的索引名称>
- 如果API中查询不到对应的UUID,说明是节点本地残留的无效文件,先确认集群状态正常没有未分配分片,滚动重启该ES节点,节点启动时会自动清理无效的残留数据文件
- 后续建议配置索引生命周期管理(ILM)策略,自动清理超过保留周期的日志索引,避免手动删除遗漏的问题
内容的提问来源于stack exchange,提问作者corey
相关产品推荐
相关产品推荐

