是时候用 ES 拯救发际线啦

elasticsearch5.4.2 删除索引磁盘空间不释放

Elasticsearch | 作者 kangyu1991 | 发布于2017年10月13日 | 阅读数:17161

定时清理了索引,但是磁盘空间不释放。4个es节点挂载了一个15t的共享磁盘。网上查到说,删除只是标记,elasticsearch会自己清理掉删除的索引。
提问:
1.elasticsearch什么时候清理已经标记删除的索引,释放空间
2.能否主动触发上面1说的
已邀请:

kennywu76 - Wood

赞同来自: kangyu1991

删除索引 (DELETE /<index>/ )是会释放磁盘空间的。所以我理解你说的实际上是删除文档(DELETE <index>/<type>/<ID>/ )。
 
删除文档的时候,是将新文档写入,同时将旧文档标记为已删除。 磁盘空间是否释放取决于新旧文档是否在同一个segment file里面,因此ES后台的segment merge在合并segment file的过程中有可能触发旧文档的物理删除。
 
但因为一个shard可能会有上百个segment file,还是有很大几率新旧文档存在于不同的segment里而无法物理删除。想要手动释放空间,只能是定期做一下force merge,并且将max_num_segments设置为1。 

赞同来自:

es删除索引之后不会立即执行磁盘删除操作,而是将索引标记为已删除,在有新文档创建时才会删除历史数据

feng6622

赞同来自:

请问后来如何删除的呢,碰到同样的问题 ,并且force merge 也无效

gtexpanse

赞同来自:

怎么会啊,确定是path.data还占着空间么,可以进去看看里面的目录是否被删掉,我经常20T的删,也没见删不掉的情况啊

要回复问题请先登录注册