騰訊雲elasticsearch產品優化指南

  • 2019 年 10 月 4 日
  • 筆記

一、首先是建議做軟優化(分片設置等)

  1. 首先先確認自己的集群是不是1c2G的測試版本配置,如果是,那麼要清楚:1c2g 不能用於生產,這個配置只能用於測試測試,弄點小數據量數據玩一玩;
  2. 對於日誌這種類似場景, 如果使用ES的默認配置(5個分片), 並且使用 Logstash 按天生成索引, 那麼 6 個月下來, 擁有的分片數將達到 890 個. 再多的話, ES集群將難以工作,因此日誌場景千萬不要用默認的設置;
  3. 因此,日誌場景建議分片大小控制在30G/個,分片的數量建議跟集群節點數的一樣或者是倍數,數量設置參考例子:假設es集群有 5 個節點,Index數據量當前大小為 150GB,預期半年後增長 50%。單分片大小控制為 30GB,則大約需要 150GB * (1 + 50%) / 30 ≈ 7個分片,因為是5個節點,這裡多出7-5=2個分片會落在5個節點的任意兩個上,這兩個會多出一些負載,造成數據熱點,節點間壓力會相對不均勻。因此,分片數量為節點數的倍數,這裡調成10個,這樣就平均了;
  4. 所以總結計算公式為: 當前index數據量總大小 * (1 + 數據預期增長比率)/ 30G(單個分片控制的大小,這個是固定的,最優是30G)
  5. 同時日誌場景index的數量建議按周或者按月來創建(按天和小時很容易造成索引數變多)
  6. 日誌數據如果不重要,副本可以不設置或者設置成1即可(number_of_replicas(副本設置)為 1);
  7. 如果預算可以,數據量後期也會很多,強烈建議在現有節點上做下橫向擴容,增加節點數(這樣會大大增加性能)
  8. 定期自動化刪除過期不必要的索引,根據業務情況刪除時間很久之前不用的索引,可以參考這個文章:https://cloud.tencent.com/developer/article/1361207

二、其他外部優化文章參考

另:es最佳實踐文檔:https://cloud.tencent.com/document/product/845/19551 es監控指標介紹文檔:https://cloud.tencent.com/document/product/845/16995 es告警設置建議:https://cloud.tencent.com/document/product/845/35572 es默認模版調整方法:https://cloud.tencent.com/document/product/845/35548 es性能壓測數據:https://cloud.tencent.com/document/product/845/19535

es產品橫向擴容介紹:

  • 概念:向集群中添加更多節點;
  • 內部實現流程:擴容時會先把申請空節點並啟動,節點會根據配置發現集群並加入,此時擴容操作已經算作成功。ES會自動在集群內部做數據均衡,不需要人工干預。
  • 優劣:快速,對業務幾乎無影響。但過多小配置的節點集群性能不佳。

下面兩篇外部文章也可以推薦給看看: 《圖解 Elasticsearch 入門原理》 https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247485771&idx=1&sn=b57cb931376def575497ed0963c564ea&chksm=fa4976facd3effec9b6048566803657f214a31949b5fa94a67b04597d33ab2813ef041e57fc0&mpshare=1&scene=1&srcid=120577nwydfyiyQYCD0ihkuR&sharer_sharetime=1565076443617&sharer_shareid=e5e1cc74ca9c3dbd757efde7fd8ad8c0&rd2werd=1#wechat_redirect

《陳曦:性能與穩定並存 Elasticsearch調優實踐》 https://mp.weixin.qq.com/s?__biz=MzI2NDU4OTExOQ==&mid=2247485503&idx=1&sn=3a1ef0d714b499e038bbdb25caecd101&chksm=eaab126fdddc9b7958185cab80cd5a6102b2586d300ef7cbaee21107ef54c705a6594d2fbaea&mpshare=1&scene=1&srcid=1102b0ZxXngkier8vLY8m0D6&sharer_sharetime=1565076470661&sharer_shareid=e5e1cc74ca9c3dbd757efde7fd8ad8c0&rd2werd=1#wechat_redirect

另外,騰訊雲es團隊的乾貨系列文章也可以關注下,裡面很多關於es優化和特點的介紹: https://cloud.tencent.com/developer/column/4008