正常的真實環境es集羣都是有副本數的,若是在大量插入數據的狀況下面,副本拷貝其實會使插入速度變慢的,根據業務狀況,能夠考慮取消replias(複製分片),等數據插入結束之後再進行更新操做,設置複製分片。此方法可以使插入速度提升一倍,shard刷新間隔,以及多線程和es批插入均可以提升效率等等。多線程
一、設置複製分片數量 curl
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
}
}' url
二、減小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"
}
}' ip
三、適當增大節點threadpool參數thread
curl -XPUT http://ip:9200/_cluster/settings -d '{"transient":{"threadpool.bulk.queue_size": 100000}}'效率