小弟是這一兩年才開始接觸ELK的,前前後後也開始分析了一些簡單的Log
關於調校Elasticsearch效能的問題,目前也在進行且努力中
只是目前已知調校優化的部分就是關於elasticsearch/jvm.options
的配置
需要確保記憶體最小值(Xms)與最大值(Xmx)的大小是相同的,
這是防止程序在執行時改變記憶體大小,因為這是一個很耗系統資源的過程。
記憶體調整的部分,
Linux 環境中安裝 Elasticsearch 預設記憶體是 2 GBElasticsearch 配置記憶體有兩個條件限制,違反下面兩個條件,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還了解的不夠深刻,但對於這樣的狀態,著實讓我感到疑惑,不曉得版大們是否有相關的經驗可以分享,感恩
先研究一下你的 Shard 分布, 被分配到比較多的 node 自然會比較擠:
ElasticSearch Shard Placement Control
好的,我也找了相關資訊來深入研究
https://www.itread01.com/content/1546464245.html
感覺雷神大指點方向:D