ElasticSearch批量更新索引的優化
1. 多執行緒程式插入
可以根據伺服器情況開啟多個執行緒index,速度可以提高n倍, n>=2
2. 取消replias
如果有多臺機器,可以以每臺設定n個shards的方式,根據業務情況,可以考慮取消replias curl -XPUT ‘http://127.0.0.1:9200/dg-test/’ -d ‘{ “settings” : { “number_of_shards” : 5, “number_of_replicas” : 0 } }’ 這裡設定5個shards, 複製為0,如果需要replicas,可以完成index後再修改為replicas>=1 原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html
3. 提高ES佔用記憶體
記憶體適當調大,初始是256M, 最大32G, 調大後,最小和最大一樣,避免GC, 並根據機器情況,設定記憶體大小, $ bin/elasticsearch -f -Xmx32g -Xms32g -Des.index.storage.type=memory 原文:http://www.elasticsearch.org/guide/reference/setup/installation.html
4. 減少shard重新整理間隔
完成bulk插入後再修改為初始值 curl -XPUT ‘http://127.0.0.1:9200/dg-test/_settings’ -d ‘{ “index” : { “refresh_interval” : “1s” } }’
5. 設定一個shard的段segment最大數
6. 去掉mapping中_all域
7. 設定source為壓縮模式或者disable
compress=true這個能大大減少index的尺寸 disable將直接沒有_source域
8. 增加merge.policy.merge_factor數
參考:
--------------------- 本文來自 lazythinker 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/lazythinker/article/details/60869903?utm_source=copy