天天看點

elasticsearch調優

部落格原文

安利一篇我翻譯的國外大牛的神經網絡入門文章

這部分是從同僚的wiki上扒下來的,記在這裡,作為以後使用的參考

分片和副本調優

  1. 更多分片使索引能傳送到更多的伺服器,意味着可以處理更多的檔案,而不會降低性能
  2. 更多分片意味着擷取特定文檔所需的資源量會減少,因為相較于部署更少分片時,存儲在單個分片中的檔案數量會更少
  3. 更多分片意味着搜尋索引時會面臨更多問題,因為必須從更多分片中合并結果,使得查詢的聚合階段需要更多的資源
  4. 更多副本會增強叢集系統的容錯性,因為當原始分片不可用時,其副本将代替原始分片發揮作用,隻擁有單個副本,叢集可能在不丢失資料的情況下遺失分片。當擁有兩個副本時,即時丢失了原始分片及其中一個副本,一切工作仍可以很好地繼續下去。
  5. 更多副本意味着查詢吞吐量會增加,因為執行車訊可以使用分片或分片的任一副本

總結

副本多:

  1. 優點:查詢速度快,容錯性高
  2. 缺點:插入速度變慢

分片多:

  1. 優點:插入速度快
  2. 缺點:查詢速度慢

副本最好設定為2份提高容錯性和查詢速度,分片設定為節點數量的2倍提高插入速度,如果是大批量導入不做查詢的話可取消副本

Merge 吞吐量調優

系統預設是20mb,實際系統性能可能會更好,可适當調整

curl  -XPUT "http://<ip>:9200/_cluster/settings" -d
    '{
        "persistent":
        {
            "indices.store.throttle.type": "merge",
            "indices.store.throttle.max_bytes_per_sec": "mb"
        }
    }'
           

重新整理頻率調優

大批量插入時,修改refresh_interval到-1(不重新整理)或大于1s的時間,減少shard重新整理間隔

curl -XPUT 'http://<ip>:9200/dw-search/_settings' -d '{ 
    "index" : { 
        "refresh_interval" : "-" 
    } 
}'
           

插入完成後修改回預設值1s

curl -XPUT 'http://10.1.*.*:9200/dw-search/_settings' -d '{ 
    "index" : { 
        "refresh_interval" : "s" 
    } 
}' 
           

另外下面的文章列出了很多有用的url

http://blog.csdn.net/u014351782/article/details/51207650

其中關閉index這個方法在一次故障進行中起了很大的作用,我們發現系統一直報’too many open files’,然後找到elasticsearch程序,發現确實打開了很多句柄,然後調用

curl http://localhost:9200/_nodes/process\?pretty

發現最大句柄數已經是65530

"max_file_descriptors" : 65530,

果然重新開機之後,句柄數很快還是飙到了65530,通過關閉index,句柄數得到了顯著減少。

本篇部落格還參考下面的部落格:

http://www.wklken.me/posts/2015/05/23/elasticsearch-issues.html

繼續閱讀