Elastic reindex速度极慢,已完成20%时设refresh_interval为-1是否合理?
Elasticsearch reindex中途调整refresh_interval合理性说明
结论:该操作完全合理,不会影响已运行的reindex任务,还能显著提升剩余80%任务的执行效率。
原理说明
refresh_interval参数控制索引的自动刷新频率,默认1秒的配置是为了满足近实时搜索需求,每次刷新都会生成新的索引段,消耗大量CPU、磁盘IO资源。reindex属于大批量写入场景,中途不需要支持搜索查询,将refresh_interval设置为-1关闭自动刷新,可避免不必要的资源开销,大幅提升写入吞吐量。
该参数为ES动态配置项,修改后即时生效,已经完成写入的20%数据不会受到任何负面影响。
操作注意事项
- 修改时仅需要对reindex的目标索引执行配置调整,不要修改源索引的配置
- 待reindex任务全部完成后,必须将refresh_interval恢复为业务所需的正常值(默认1秒),否则后续新写入的数据不会自动刷新,无法通过搜索接口查询
- 若需要进一步提升reindex速度,可同时将目标索引的副本数临时调整为0,任务完成后再恢复原有副本配置,提速效果会更明显
参考调整命令
# 临时将目标索引的refresh_interval设置为-1 curl -XPUT 'localhost:9200/你的目标索引名/_settings' -d ' { "index" : { "refresh_interval" : -1 } }' # reindex完成后恢复为默认1秒 curl -XPUT 'localhost:9200/你的目标索引名/_settings' -d ' { "index" : { "refresh_interval" : "1s" } }'
内容的提问来源于stack exchange,提问作者spyga
相关产品推荐
相关产品推荐

