es裡面的操作,主要分為兩種,一種寫入(增刪改),另一種是查詢(搜尋)
我們分別要識別出來,哪些寫入操作效能比較慢,哪些查詢操作效能比較慢,先要識別出來有效能問題的這些慢查詢,慢寫入,然後才能去考慮如何優化寫入的效能,如何優化搜尋的效能
搜尋慢查詢日誌
無論是慢查詢日誌,還是慢寫入日誌,都是針對shard級別的,因為大家應該知道,無論你是執行增刪改,還是執行搜尋,都是對某個資料執行寫入或者是搜尋,其實都是到某個shard上面去執行的
shard上面執行的慢的寫入或者是搜尋,都會記錄在針對這個shard的日誌中
閾值的意思,就是說,什麼叫做慢?搜尋,5s叫做慢?還是10s叫做慢?或者是1s叫做慢?
比如說,你設定乙個閾值,5s就是搜尋的閾值,5s就叫做慢,那麼一旦乙個搜尋請求超過了5s之後,就會記錄一條慢搜尋日誌到日誌檔案中
shard level的搜尋慢查詢日誌,輝將搜尋效能較慢的查詢寫入乙個專門的日誌檔案中。可以針對query phase和fetch phase單獨設定慢查詢的閾值,而具體的慢查詢閾值設定如下所示:
在elasticsearch.yml中,設定
index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 2s
index.search.slowlog.threshold.query.trace: 500ms
index.search.slowlog.threshold.fetch.warn: 1s
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug: 500ms
index.search.slowlog.threshold.fetch.trace: 200ms
而慢查詢日誌具體的格式,都是在log4j2.properties中配置的,比如下面的配置:
logger.index_search_slowlog_rolling.name = index.search.slowlog
logger.index_search_slowlog_rolling.level = trace
logger.index_search_slowlog_rolling.additivity = false
索引慢寫入日誌
可以用如下的配置來設定索引寫入慢日誌的閾值:
index.indexing.slowlog.threshold.index.warn: 10s
index.indexing.slowlog.threshold.index.info: 5s
index.indexing.slowlog.threshold.index.debug: 2s
index.indexing.slowlog.threshold.index.trace: 500ms
index.indexing.slowlog.level: info
index.indexing.slowlog.source: 1000
用下面的log4j.properties配置就可以設定索引慢寫入日誌的格式:
logger.index_indexing_slowlog.name = index.indexing.slowlog.index
logger.index_indexing_slowlog.level = trace
logger.index_indexing_slowlog.additivity = false
把這個東西記錄好了以後,就可以什麼呢?es集群運維管理員,就需要經常每天去看看,正常情況下,慢查詢應該是比較少數的。所以比如你每天檢查一次,如果發現某個查詢特別慢,就要通知寫這個查詢的rd,開發人員,讓他們去優化一下效能。
ElasticSearch 效能優化
getrace系統的所有搜尋都是用elasticsearch來做的,在使用elasticsearch的過程中碰到了一些問題,這裡記錄一下。一 在查詢呼叫鏈的時候。整體資料量大 每天60g 7 420g 但是結果集比較少 只有幾百行 的時候,查詢時間經常會超過1分鐘,慢的甚至需要5,6分鐘.優化1 經...
elasticsearch效能優化
elasticsearch查詢依賴作業系統的頁面快取記憶體 file system cache 因此除了需要給elasticsearch的jvm分配足夠的記憶體以外,還需要給頁快取預留記憶體。例如單機32g記憶體,給jvm配置16g記憶體後,剩餘16g預留記憶體不需要額外配置,也不要讓其他程序占用這...
ElasticSearch效能優化策略
一 伺服器部署演算法的基本思想 1 增加1 2臺伺服器,用於負載均衡節點 elasticsearch的配置檔案中有2個引數 node.master和node.data。這兩個參 數搭配使用時,能夠幫助提供伺服器效能。1.1 node.master false node.data true 該node...