iT邦幫忙

0

關於ELK - Elasticsearch 的性能調教(校)的迷思問題

小弟是這一兩年才開始接觸ELK的,前前後後也開始分析了一些簡單的Log

關於調校Elasticsearch效能的問題,目前也在進行且努力中

只是目前已知調校優化的部分就是關於elasticsearch/jvm.options的配置

需要確保記憶體最小值(Xms)與最大值(Xmx)的大小是相同的,

這是防止程序在執行時改變記憶體大小,因為這是一個很耗系統資源的過程。

記憶體調整的部分,
Linux 環境中安裝 Elasticsearch 預設記憶體是 2 GB

Elasticsearch 配置記憶體有兩個條件限制,違反下面兩個條件,Elasticsearch 查詢速度會不升反減:

記憶體最高只能設定系統可用的一半:
例:系統記憶體總共有 32GB,只能設定 16GB 給 Elasticsearch,為什麼呢?在這篇中 Chris 有介紹到 Elasticsearch 底層是 Base on Lucene,Lucene 的效能取決於和作業系統的相互作用。如果你把所有的記憶體都分配給 Elasticsearch ,那將不會有剩餘的記憶體給 Lucene。這將嚴重地影響全文檢索的效能。

不能超過 32GB:
Elasticsearch 是 JAVA 語言所開發的應用程式,也就是說它脫離不了 JVM 跟 Garbage Collection,這裡為官方的說明。

這也是我依賴Google慢慢去摸索的資訊,但目前使用到後面,漸漸發現一個問題

從最一開始關於ELK - Elasticsearch 優化效能的方式問題 (感謝 raytracy 協助解決) 聽從雷神大的建議後

現在目前架構就變成ELK Cluster集群架構了

架構配置如下
ES-master 8 CPU/ 16GRAM
ES-node1 8 CPU/ 8GRAM
ES-node2 8 CPU/ 16GRAM

目前最大的疑問就是,當我ES-node2原本記憶體只給8G RAM的時候,使用率就高達90%
現在提升到了16G RAM,使用率還是慢慢地又拉到了90%

我認為我對ELK還了解的不夠深刻,但對於這樣的狀態,著實讓我感到疑惑,不曉得版大們是否有相關的經驗可以分享,感恩

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Ray
iT邦大神 1 級 ‧ 2020-05-31 12:25:50
最佳解答

先研究一下你的 Shard 分布, 被分配到比較多的 node 自然會比較擠:

ElasticSearch Shard Placement Control

踏雪尋梅 iT邦研究生 5 級 ‧ 2020-06-02 14:58:12 檢舉

好的,我也找了相關資訊來深入研究
https://www.itread01.com/content/1546464245.html

感覺雷神大指點方向:D

我要發表回答

立即登入回答