系統層面的調優主要是記憶體的設定
與避免交換記憶體
。
es 安裝後預設設定的堆記憶體是1gb
,這很明顯是不夠的,那麼接下來就會有乙個問題出現:我們要設定多少記憶體給 es 呢?
其實這是要看我們集群節點的記憶體大小,還取決於我們是否在伺服器節點上還是否要部署其他服務。
那我們在建立索引的時候,應該建立多少個分片與副本數呢?
下面我會介紹一些 es 關鍵引數的調優。
有很多場景是,我們的 es 集群占用了多大的 cpu 使用率,該如何調節呢。cpu 使用率高,有可能是寫入導致的,也有可能是查詢導致的,那要怎麼檢視呢?
可以先通過get _nodes//hot_threads
檢視執行緒棧,檢視是哪個執行緒占用cpu
高,如果是elasticsearch[search][t#10]
則是查詢導致的,如果是elasticsearch[bulk][t#1]
則是資料寫入導致的。
在實際調優中,cpu 使用率很高,如果不是 ssd,建議把index.merge.scheduler.max_thread_count: 1
索引 merge 最大執行緒數設定為 1 個,該引數可以有效調節寫入的效能。因為在儲存介質上併發寫,由於定址的原因,寫入效能不會提公升,只會降低。
還有幾個重要引數可以進行設定,各位同學可以視自己的集群情況與資料情況而定。
還有一些超時引數的設定:
還有一些零碎的優化建議喔。
elasticsearch引數優化
elasticsearch.yml中的配置 indices.memory.index buffer size 30 應該至少為系統cache預留一半的可用物理記憶體,更大的記憶體有更高的cache命中率。使用更快的硬體。為了讓搜尋時的成本更低,文件應該合理建模。特別是應該避免join操作,巢狀 ne...
elasticsearch引數配置
前一段時間配置了公司offline,online的es服務兩組,根據節點分工不同,分為master,client,data三種型別節點 伺服器引數修改如下 etc sysctl.conf 增加 vm.max map count 262144 然後執行sysctl p生效 etc security l...
elasticsearch引數詳解
elasticsearch.yml cluster.name elasticsearch 配置es的集群名稱,預設是elasticsearch,es會自動發現在同一網段下的es,如果在同一網段下有多個集群,就可以用這個屬性來區分不同的集群。node.name franz kafka 節點名,預設隨機...