1. 程式人生 > >ES03--效能調優02(檔案數、記憶體、root靜默啟動)

ES03--效能調優02(檔案數、記憶體、root靜默啟動)

一、“Too many open files”

方式1:

發現日誌中大量出現這個錯誤

執行

curl http:// 

localhost:9200

/_nodes/process\?pretty

可以看到

"max_file_descriptors" : 4096,

官方文件中

Make sure to increase the number of open files descriptors on the machine (or for the user running elasticsearch). Setting it to 32k or even 64k is recommended.

而此時, 可以在系統級做修改, 然後全域性生效

最簡單的做法, 在bin/elasticsearch檔案開始的位置加入

ulimit -n 64000

然後重啟es, 再次查詢看到

"max_file_descriptors" : 64000

方式2:

vi /etc/security/limits.conf 新增下面兩行

soft nofile 65536

hard nofile 131072


二、Elasticsearch JVM 記憶體配置大小

修改bin/elasticsearch.in.sh中ES_MIN_MEM和ES_MAX_MEM的大小,建議設定一樣大,避免頻繁的分配記憶體,根據伺服器記憶體大小,一般分配60%左右(預設256M) 注意:記憶體最大不要超過32G

  一旦你越過這個神奇的32 GB邊界,指標會切換回普通物件指標.。每個指標的大小增加,使用更多的CPU記憶體頻寬。事實上,你使用40~50G的記憶體和使用32G的記憶體效果是一樣的。


三、分片多的話,通過提升建立索引的能力,5~20

如果分片數過少或過多,都會導致檢索比較慢。分片數過多會導致檢索時開啟比較多的檔案,另外也會導致多臺伺服器之間通訊,而分片數過少會導至單個分片索引過大,所以檢索速度也會慢。建議單個分片最多儲存20G左右的索引資料,所以,分片數量=資料總量/20G。

四、root啟動elasticsearch

bin/elasticsearch -Des.insecure.allow.root=true -d //預設以root賬號啟動 或者修改/bin/elasticsearch檔案,修改如下語句: exec"$JAVA"$JAVA_OPTS$ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
修改為: exec"$JAVA"$JAVA_OPTS$ES_JAVA_OPTS -Des.path.home="$ES_HOME" -Des.insecure.allow.root=true -cp "$ES_CLASSPATH" \

參考部落格:https://www.cnblogs.com/zlslch/p/6478773.html