ELK,萌萌哒

ES5以上版本可以设置flush的interval吗?

Elasticsearch | 作者 wangxinrong | 发布于2020年05月11日 | 阅读数:3411

我看老版本的ES文档上是有 index.translog.flush_threshold_period 这个参数的,可以指定多久后进行一次flush操作,默认是30分钟。
 
但我在ES5以上版本试了下发现这个参数已经没有了,只能设置index.translog.flush_threshold_size参数,指定translog达到一定大小后才flush。
 
这样会出现一个问题,当我把flush_threshold_size设置的较大时,比如4gb,所有不再有写入的索引,它们的每个分片上都有0-4g不等大小的tranglog文件,这些文件加起来占用的磁盘空间很可观。我只能每天手动对全部索引做一次flush才能释放掉。
 
为什么会取消flush_threshold_period这个参数呢,如果有了这个参数,我上面说的情况就可以解决了。
已邀请:

zqc0512 - andy zhou

赞同来自: byx313

有两个参数 translog 大小  索引刷新时间 
index.refresh_interval
index.translog.flush_threshold_size
 

trycatchfinal

赞同来自:

从 5.0 版本开始,索引的设置,不再使用配置文件elasticsearch.yaml 或者命令行。


In previous versions Elasticsearch allowed to specify index level setting as defaults on the node level, inside the elasticsearch.yaml file or even via command-line parameters. From Elasticsearch 5.0 on only selected settings like for instance index.codec can be set on the node level. All other settings must be set on each individual index. To set default values on every index, index templates should be used instead.
 
参考:https://www.elastic.co/guide/e ... .html


可以使用动态索引设置
curl -XPUT 'localhost:9200/my_index/_settings' -d '
{
"index" : {
"translog" : {
"flush_threshold_size" : "512mb"
}
}
}'
参考 :https://www.elastic.co/guide/e ... .html

wangxinrong

赞同来自:

我上面说的那个问题,除了调小flush_threshold_size,或者每天跑脚本对旧索引手动做一次flush以外,没有其他比较好的办法了吗,如果是能有类似flush interval的参数,就能用比较简单的方式解决了。

要回复问题请先登录注册