1. 多執行緒程式插入,可以根據伺服器情況開啟多個執行緒index
速度可以提高n倍, n>=2
2. 如果有多台機器,可以以每台設定n個shards的方式,根據業務情況,可以考慮取消replias
curl -xput '' -d '
}'這裡設定20個shards, 複製為0,如果需要replicas,可以完成index後再修改為replicas>=1
原文:3. 提高es占用記憶體
記憶體適當調大,初始是256m, 最大1g,
調大後,最小和最大一樣,避免gc, 並根據機器情況,設定記憶體大小,
$ bin/elasticsearch -f -xmx4g -xms4g -des.index.storage.type=memory
原文:4. 減少shard重新整理間隔
curl -xput '_settings' -d '
}'完成bulk插入後再修改為初始值
curl -xput '_settings' -d '
}'5. 設定乙個shard的段segment最大數
可以減少段檔案數,提高查詢速度
curl -xpost '_optimize?max_num_segments=5'
注意:有時候可能需要多次執行
原文:原文:
index中缺省會有_all的域,這個會給查詢帶來方便,但是會增加索引時間和索引尺寸
"_all" :
7. 設定source為壓縮模式或者disable
compress=true這個能大大減少index的尺寸
disable將直接沒有_source域
8. 增加merge.policy.merge_factor數
設定merge.policy.merge_factor到30,初始是10
增加這個數需要更多的記憶體,bulk index可以調大這個值.
如果是即時索引,應該調小這個值
原文:9. 修改client獲得方式為
node node = nodebuilder().client(true).node();
client client = node.client()
相比transport client更快
測試效果,速度提高不明朗,且報錯。去除
ElasticSearch 效能優化
getrace系統的所有搜尋都是用elasticsearch來做的,在使用elasticsearch的過程中碰到了一些問題,這裡記錄一下。一 在查詢呼叫鏈的時候。整體資料量大 每天60g 7 420g 但是結果集比較少 只有幾百行 的時候,查詢時間經常會超過1分鐘,慢的甚至需要5,6分鐘.優化1 經...
ElasticSearch 優化配置
索引建立優化 house properties title price area createtime lastupdatetime cityenname regionenname direction distancetosubway subwaylinename subwaystationname...
elasticsearch效能優化
elasticsearch查詢依賴作業系統的頁面快取記憶體 file system cache 因此除了需要給elasticsearch的jvm分配足夠的記憶體以外,還需要給頁快取預留記憶體。例如單機32g記憶體,給jvm配置16g記憶體後,剩餘16g預留記憶體不需要額外配置,也不要讓其他程序占用這...