ElasticSearch7.X之写入优化

    业务需求:对写入速度要求高。但是对实时搜索数据可靠性并不高。

加大tranlog flush间隔

降低写阻塞
默认每个请求都flush
index.translog.durability: request
改变:
index.translog.durability: async
设置为async表示translog的刷盘策略按sync_interval配置指定的时间周期进行。
index.translog.sync_interval: 120s
加大translog刷盘间隔时间。默认为5s,不可低于100ms。

index.translog.flush_threshold_size: 1024mb
超过这个大小会导致refresh操作,产生新的Lucene分段。默认值为
512MB。

加大index refresh间隔

降低IO,降低segement merge

默认情况下索引的refresh_interval为1秒,这意味着数据写1秒后就
可以被搜索到,每次索引的refresh会产生一个新的Lucene段,这会导致
频繁的segment merge行为,如果不需要这么高的搜索实时性,应该降低
索引refresh周期,例如:
index.refresh_interval: 120s

调整bulk请求

批量写比一个索引请求只写单个文档的效率高得多,但是要注意bulk请求的整体字节数不要太大,太大的请求可能会给集群带来内存压力,因此每个请求最好避免超过几十兆字节,即使较大的请求看上去执行得更好

shard尽量均匀

优化Lucene建立索引过程

禁用_all
禁用norms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值