(Elasticsearch)ES写入性能优化方案
1、tranlog flush 间隔调整
默认设置下,每个请求都flush,这是影响es写入速度的最大因素,需要调整translog持久化策略为周期性和一定大小的时候flush,例如:
index.translog.durability: async
设置为async表示translog的刷盘策略按sync_interval配置指定的时间周期进行。
index.translog.sync_interval:120s
加大translog刷盘间隔时间。默认5s,不低于100ms.
index.translog.flush_threshold_size: 1024mb
超过这个大小导致refresh,默认512MB
2、并发执行bulk请求
单线程发送bulk请求是无法最大化es集群写入的吞吐量的。如果要利用集群的所有资源,就需要使用多线程并发将数据bulk写入集群中。为了更好的利用集群的资源,这样多线程并发写入,可以减少每次底层磁盘fsync的次数和开销。首先对单个es节点的单个shard做压测,比如说,先是2个线程,然后是4个
共有 0 条评论