Elasticsearch性能調(diào)優(yōu)之慢查詢?nèi)罩?/h1>

es里面的操作,主要分為兩種,一種寫入(增刪改)纪挎,另一種是查詢(搜索)

我們分別要識別出來期贫,哪些寫入操作性能比較慢,哪些查詢操作性能比較慢异袄,先要識別出來有性能問題的這些慢查詢通砍,慢寫入,然后才能去考慮如何優(yōu)化寫入的性能烤蜕,如何優(yōu)化搜索的性能

搜索慢查詢?nèi)罩?/p>

無論是慢查詢?nèi)罩痉馑铮€是慢寫入日志,都是針對shard級別的讽营,因為大家應該知道虎忌,無論你是執(zhí)行增刪改,還是執(zhí)行搜索橱鹏,都是對某個數(shù)據(jù)執(zhí)行寫入或者是搜索膜蠢,其實都是到某個shard上面去執(zhí)行的

shard上面執(zhí)行的慢的寫入或者是搜索,都會記錄在針對這個shard的日志中

閾值的意思蚀瘸,就是說狡蝶,什么叫做慢?搜索贮勃,5s叫做慢贪惹?還是10s叫做慢?或者是1s叫做慢寂嘉?

比如說奏瞬,你設(shè)置一個閾值,5s就是搜索的閾值泉孩,5s就叫做慢硼端,那么一旦一個搜索請求超過了5s之后,就會記錄一條慢搜索日志到日志文件中

shard level的搜索慢查詢?nèi)罩驹幔x將搜索性能較慢的查詢寫入一個專門的日志文件中珍昨。可以針對query phase和fetch phase單獨設(shè)置慢查詢的閾值句喷,而具體的慢查詢閾值設(shè)置如下所示:

在elasticsearch.yml中镣典,設(shè)置

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

而慢查詢?nèi)罩揪唧w的格式,都是在log4j2.properties中配置的唾琼,比如下面的配置:

appender.index_search_slowlog_rolling.type = RollingFile
appender.index_search_slowlog_rolling.name = index_search_slowlog_rolling
appender.index_search_slowlog_rolling.fileName = ${sys:es.logs}_index_search_slowlog.log
appender.index_search_slowlog_rolling.layout.type = PatternLayout
appender.index_search_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n
appender.index_search_slowlog_rolling.filePattern = ${sys:es.logs}_index_search_slowlog-%d{yyyy-MM-dd}.log
appender.index_search_slowlog_rolling.policies.type = Policies
appender.index_search_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.index_search_slowlog_rolling.policies.time.interval = 1
appender.index_search_slowlog_rolling.policies.time.modulate = true

logger.index_search_slowlog_rolling.name = index.search.slowlog
logger.index_search_slowlog_rolling.level = trace
logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref = index_search_slowlog_rolling
logger.index_search_slowlog_rolling.additivity = false

索引慢寫入日志

可以用如下的配置來設(shè)置索引寫入慢日志的閾值:

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配置就可以設(shè)置索引慢寫入日志的格式:

appender.index_indexing_slowlog_rolling.type = RollingFile
appender.index_indexing_slowlog_rolling.name = index_indexing_slowlog_rolling
appender.index_indexing_slowlog_rolling.fileName = ${sys:es.logs}_index_indexing_slowlog.log
appender.index_indexing_slowlog_rolling.layout.type = PatternLayout
appender.index_indexing_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%.10000m%n
appender.index_indexing_slowlog_rolling.filePattern = ${sys:es.logs}_index_indexing_slowlog-%d{yyyy-MM-dd}.log
appender.index_indexing_slowlog_rolling.policies.type = Policies
appender.index_indexing_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.index_indexing_slowlog_rolling.policies.time.interval = 1
appender.index_indexing_slowlog_rolling.policies.time.modulate = true

logger.index_indexing_slowlog.name = index.indexing.slowlog.index
logger.index_indexing_slowlog.level = trace
logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref = index_indexing_slowlog_rolling
logger.index_indexing_slowlog.additivity = false

把這個東西記錄好了以后兄春,就可以什么呢?es集群運維管理員锡溯,就需要經(jīng)常每天去看看赶舆,正常情況下哑姚,慢查詢應該是比較少數(shù)的。所以比如你每天檢查一次芜茵,如果發(fā)現(xiàn)某個查詢特別慢叙量,就要通知寫這個查詢的RD,開發(fā)人員夕晓,讓他們?nèi)?yōu)化一下性能宛乃。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒸辆,隨后出現(xiàn)的幾起案子征炼,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異简肴,居然都是意外死亡绣溜,警方通過查閱死者的電腦和手機聘芜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事魄懂。” “怎么了闯第?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵市栗,是天一觀的道長。 經(jīng)常有香客問我咳短,道長填帽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任咙好,我火速辦了婚禮篡腌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勾效。我一直安慰自己嘹悼,他們只是感情好,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布层宫。 她就那樣靜靜地躺著绘迁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卒密。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天棠赛,我揣著相機與錄音哮奇,去河邊找鬼膛腐。 笑死,一個胖子當著我的面吹牛鼎俘,可吹牛的內(nèi)容都是我干的哲身。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贸伐,長吁一口氣:“原來是場噩夢啊……” “哼勘天!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捉邢,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤脯丝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伏伐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宠进,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年藐翎,在試婚紗的時候發(fā)現(xiàn)自己被綠了材蹬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吝镣,死狀恐怖堤器,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情末贾,我是刑警寧澤闸溃,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站未舟,受9級特大地震影響圈暗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裕膀,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一员串、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昼扛,春花似錦寸齐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛹含,卻和暖如春毅厚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浦箱。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工吸耿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祠锣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓咽安,卻偏偏與公主長得像伴网,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妆棒,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容