正常的真实环境es集群都是有副本数的,如果在大量插入数据的情况下面,副本拷贝其实会使插入速度变慢的,根据业务情况,可以考虑取消replias(复制分片),等数据插入结束以后再进行更新操作,设置复制分片。此方法可使插入速度提高一倍,shard刷新间隔,以及多线程和es批插入都可以提高效率等等。
1、设置复制分片数量
curl -XPUT http://ip:9200/index/_settings -d '{ "settings" : { "number_of_replicas" : 0 } }' //数据插入结束,更新复制分片为1 curl -XPUT http://ip:9200/index/_settings -d '{ "settings" : { "number_of_replicas" : 1 } }'
2、减少shard刷新间隔
curl -XPUT http://ip:9200/index/_settings -d '{ "index" : { "refresh_interval" : "-1" } }' //完成插入后再修改为初始值 curl -XPUT http://ip:9200/index/_settings -d '{ "index" : { "refresh_interval" : "20s" } }'
3、适当增大节点threadpool参数
curl -XPUT http://ip:9200/_cluster/settings -d '{"transient":{"threadpool.bulk.queue_size": 100000}}'
(adsbygoogle = window.adsbygoogle || []).push({});