精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

值得擁有的 ES 讀場景、寫場景性能優化指南

運維 數據庫運維
ES作為NoSQL數據庫里非常重要的一員,使用越來越廣泛。雖然它因為索引延遲的原因,數據在時效性上有一些缺陷,但其大容量、分布式的優秀設計,使得它在時效性要求并不是特別高的類實時搜索領域,能夠大展身手。

[[442628]]

本文轉載自微信公眾號「小姐姐味道」,作者小姐姐養的狗 。轉載本文請聯系小姐姐味道公眾號。

ES作為NoSQL數據庫里非常重要的一員,使用越來越廣泛。雖然它因為索引延遲的原因,數據在時效性上有一些缺陷,但其大容量、分布式的優秀設計,使得它在時效性要求并不是特別高的類實時搜索領域,能夠大展身手。

根據使用場景和用途,ES可以分為寫入和讀取兩種典型的應用方式。比如ELKB,我們就需要額外關注它的寫優化;再比如從MySQL中同步數據到ES的寬表,我們就需要額外關注它的讀優化。

廢話不多說,我們直接show一下優化方法。如果你對ES的一些概念還不是很清楚,建議收藏本文慢慢看。

1.寫入優化

日志屬于寫多讀少的業務場景,對寫入速度要求很高。拿我們其中一個集群來說,單集群日志量達到百TB,每秒鐘日志寫入量達到10W條。

數據寫入,主要有三個動作:flush、refresh和merge。通過調整它們的行為,即可在性能和數據可靠性之間進行權衡。

1.1 translog異步化

首先,ES需要寫一份translog,它類似于MySQL中的redolog,為的是避免在斷電的時候數據丟失。ES默認每次請求都進行一次flush,但對于日志來說,這沒有必要,可以將這個過程改為異步的,刷盤間隔為60秒。參數如下: 

  1. curl-H"Content-Type: application/json"-XPUT'http://localhost:9200/_all/_settings?preserve_existing=true'-d'{ 
  2.   "index.translog.durability" : "async"
  3.   "index.translog.flush_threshold_size" : "512mb"
  4.   "index.translog.sync_interval" : "60s" 
  5. }' 

這可以說是最重要的一步優化了,對性能的影響最大,但在極端情況下會有丟失部分數據的可能。對于日志系統來說,是可以忍受的。

1.2 增加refresh間隔

除了寫translog,ES還會將數據寫入到一個緩沖區中。但是注意了!此時,緩沖區的內容是無法被搜索到的,它還需要寫入到segment里面才可以,也就是刷新到lucence索引里面。這就是refresh動作,默認1秒。也就是你寫入的數據,大概率1秒之后才會被搜索到。

這也是為什么ES不是實時搜索系統的原因,它從數據寫入到數據讀出,一般是有一個合并過程的,有一定的時間差。

通過index.refresh_interval可以修改這個刷新間隔。

對于日志系統來說,當然要把它調大一點啦。xjjdog這里調整到了120s,減少了這些落到segment的頻率,I/O的壓力自然會小,寫入速度自然會快。 

  1. curl-H"Content-Type: application/json"-XPUT'http://localhost:9200/_all/_settings?preserve_existing=true'-d'{ 
  2.   "index.refresh_interval" : "120s" 
  3. }' 

1.3 merge

merge其實是lucene的機制,它主要是合并小的segment塊,生成更大的segment,來提高檢索的速度。

原因就是refresh過程會生成一大堆小segment文件,數據刪除也會產生空間碎片。所以merge,通俗來講就像是碎片整理進程。像postgresql等,也有vaccum進程在干同樣的事。

顯而易見,這種整理操作,既浪費I/O,又浪費CPU。

如果你的系統merge非常頻繁,那么調整merge的塊大小和頻率,是一個比較好的方法。

2.讀取優化

2.1 指定路由

如果你向ES里寫數據,那么它會為你設置一個離散的隱藏ID,落到哪個分片,是不一定的。如果你根據一個查詢條件查詢數據,你設置了6個shards的話,它要查詢6次才行。如果能夠在路由的時候就知道數據在哪個分片上,查詢速度自然會上升,這就要求我們在構造數據的時候,人工指定路由規則。它的實際運行規則如下: 

  1. shard = hash(routing) % number_of_primary_shards 

比如,一個查詢會變成這樣。 

  1. GET my-index-000001/_search 
  2.   "query": { 
  3.     "terms": { 
  4.       "_routing": [ "user1" ]  
  5.     } 
  6.   } 

當然,如果你的查詢維度較多,又對數據的查詢速度有非常高的有求,根據routing存放多份數據是一個比較好的選擇。

2.2 rollover冷熱分離

rollover根據索引大小,文檔數或使用期限自動過渡到新索引。當rollover觸發后,將創建新索引,寫別名將更新為指向新索引,所有后續更新都將寫入新索引,比如indexname-000001.這種模式。

從rollover這個名字可以看出來,它和Java的log日志有一定的相似之處,比如Log4j的RollingFileAppender。

當索引變的非常大,通常是幾十GB,那它的查詢效率將變的非常的低,索引重建的成本也較大。實際上,很多索引的數據在時間維度上有較為明顯的規律,一些冷數據將很少被用到。這個時候,建立滾動索引將是一個比較好的辦法。

滾動索引一般可以與索引模板結合使用,實現按一定條件自動創建索引,ES的官方文檔有具體的_rollover建立方法。

2.3 使用BoolQuery替代TermQuery

Bool查詢現在包括四種子句,must、filter、should和must_not。Bool查詢是true、false對比,而TermQuery是精確的字符串比對,所以如果需求相似,BoolQuery自然會快于TermQuery。

2.4 將大查詢拆成分段查詢

有些業務的查詢比較復雜,我們不得不拼接一張非常大的寬表放在ES中,這有兩個比較明顯的問題。

  1. 寬表的數據往往需要從其他數據源中回查拼接而成,數據更新時對源庫或者ES本身都有較大的壓力
  2. 業務的查詢JSON需要書寫的非常復雜,查詢效率未知,一次查詢鎖定的內存過高,無法進行深入優化

其實,寬表不論在RDBMS中還是ES中,都會與復雜的查詢語句有關,其鎖定時間都較長,業務也不夠靈活。

應對這種場景的策略,通常將復雜的數據查詢,轉移到業務代碼的拼接上來。比如,將一段非常冗長的單條查詢,拆分成循環遍歷的100條小查詢。所有的數據庫都對較小的查詢請求有較好的響應,其整體性能整體上將優于復雜的單條查詢。

這對我們的ES索引建模能力和編碼能力提出了挑戰。畢竟,在ES層面,互不相關的幾個索引,將作為整體為其他服務提供所謂的數據中臺接口。

2.5 增加第一次索引的速度

很多業務的索引數據往往來自于MySQL等傳統數據庫,第一次索引往往是全量索引,后面才是增量索引。必要的時候,也會進行索引的重建,大量的數據灌入造成了ES的索引速度建立緩慢。

為了緩解這種情況,建議在創建索引的時候,把副本數量設置成1,即沒有從副本。等所有數據索引完畢,再將副本數量增加到正常水平。

這樣,數據能夠快速索引,副本會在后臺慢慢復制。

3.通用優化

當然,我們還可以針對ES做一些通用的優化。比如,使用監控接口或者trace工具,發現線程池有明顯的瓶頸,則需要調整線程池的大小。

具體的優化項如下。

3.1 線程池優化

新版本對線程池的配置進行了優化,不需要配置復雜的search、bulk、index線程池。有需要配置下面幾個就行了:thread_pool.get.size, thread_pool.write.size, thread_pool.listener.size, thread_pool.analyze.size。具體可觀測_cat/thread_pool接口暴露的數據進行調整。

3.2 物理冷熱分離

上面的rollover接口,我們可以實現索引滾動。但是如何將冷數據存放在比較慢但是便宜的節點上?如何將某些索引移動過去?

ES支持給節點打標簽,具體方式是在elasticsearch.yml文件中增加一些屬性。比如: 

  1. //熱節點 
  2. node.attr.temperature: hot  
  3. //冷節點 
  4. node.attr.temperature: cold  

節點有了冷熱屬性后,接下來就是指定數據的冷熱屬性,來設置和調整數據分布。ES提供了index shard filtering功能來實現索引的遷移。

首先,可以對索引也設置冷熱屬性。 

  1. PUT hot_data_index/_settings 
  2.     "index.routing.allocation.require.temperature""hot" 

這些索引將自動轉移到冷設備上。我們可以寫一些定時任務,通過_cat接口的數據,自動的完成這個轉移過程。

3.2 多磁盤分散I/O

其實,可以通過配置多塊磁盤的方式,來分散I/O的壓力,但容易會造成數據熱點集中在單塊磁盤上。

ES支持在一臺機器上配置多塊磁盤,所以在存儲規模上有更大的伸縮性。在配置文件中,配置path.data屬性,即可掛載多塊磁盤。 

  1. path.data : /data1, /data2, /data3 

值得注意的是,如果你是在擴容,那么就需要配合reroute接口進行索引的重新分配。

3.3 減少單條記錄的大小

Lucene的索引建立過程,非常耗費CPU,可以減少倒排索引的數量來減少CPU的損耗。第一個優化就是減少字段的數量;第二個優化就是減少索引字段的數量。具體的操作,是將不需要搜索的字段,index屬性設置為not_analyzed或者no。至于_source和_all,在實際調試中效果不大,不再贅述。

ES的使用越來越廣泛,從ELKB到APM,從NoSQL到搜索引擎,ES在企業中的地位也越來越重要。本文通過分析ES寫入和讀取場景的優化,力求從原理到實踐層面,助你為ES加速。希望你在使用ES時能夠更加得心應手。

通常,一個ES集群對配置的要求是較高的,尤其是APM等場景,甚至會占到PaaS平臺的1/3資源甚至更多。ES提供了較多的配置選項,我們可以根據應用場景,調整ES的表現,使其更好的為我們服務。

作者簡介:小姐姐味道 (xjjdog),一個不允許程序員走彎路的公眾號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道。

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2017-11-23 10:38:01

2021-01-21 09:45:16

Python字符串代碼

2019-03-25 13:12:59

前端開發編程

2023-09-06 08:14:34

性能優化模式

2022-06-28 09:44:21

DevOps軟件開發

2022-09-22 08:05:23

架構

2021-12-13 09:00:00

數據質量工具業務

2024-03-19 09:24:00

大數據數據分析性能優化

2011-01-04 09:21:37

2021-02-24 14:04:23

Linux媒體播放器桌面

2014-12-19 10:55:17

Linux性能監控

2025-09-30 08:27:18

Spring數據庫編程式

2021-01-13 05:27:02

服務器性能高并發

2024-01-04 17:24:02

2015-05-05 09:26:31

Java程序員程序員書籍

2020-06-21 13:42:27

微服務服務網格服務網格工具

2019-11-01 14:00:58

前端性能優化代碼

2023-11-15 16:35:31

SQL數據庫

2025-10-09 01:11:00

Spring數據庫事務

2023-08-16 11:39:19

高并發調優
點贊
收藏

51CTO技術棧公眾號

婷婷激情小说网| 欧美一区二区三区在线播放 | 182午夜视频| bt在线麻豆视频| 不卡视频在线观看| 国产成人av网| 欧美丰满艳妇bbwbbw| 久久精品凹凸全集| 欧美日韩在线综合| 国产成人亚洲综合无码| 男女污视频在线观看| 精品一区二区在线免费观看| 韩国三级日本三级少妇99| 永久免费av无码网站性色av| 日韩激情综合| 欧美在线不卡一区| 欧美一级视频在线播放| 91se在线| 久久蜜臀中文字幕| 97人人模人人爽人人喊38tv| 精品黑人一区二区三区| 国内在线观看一区二区三区| 伊人激情综合网| 香蕉久久久久久av成人| 欧美天堂在线| 欧美性xxxx极品hd欧美风情| 99re6这里有精品热视频| 理论在线观看| 成人动漫精品一区二区| 成人精品久久一区二区三区| 人人妻人人爽人人澡人人精品| 欧美特黄一区| 久久精品国产欧美亚洲人人爽| 熟女少妇一区二区三区| 精品三级在线观看视频| 91精品福利在线一区二区三区| 91av俱乐部| 国产夫妻在线播放| 亚洲一区二区三区爽爽爽爽爽| 伊人久久大香线蕉精品| 成人影院免费观看| 91片黄在线观看| 国产一区二区三区色淫影院| 成人福利小视频| 国产精品一区二区在线观看不卡| 国产精品一二三在线| 草莓视频18免费观看| 欧美亚洲一区二区三区| 97精品国产91久久久久久| 欧美日韩中文字幕在线观看| 中文字幕一区二区三区欧美日韩 | 国产欧美丝袜| 亚洲女同志亚洲女同女播放| 国产成人综合网站| 亚洲在线一区二区| a天堂视频在线| 丁香激情综合五月| 国产精品福利视频| 欧美在线精品一区二区三区| 成人性生交大片免费看中文网站| 99r国产精品视频| www五月婷婷| 成人免费看的视频| 国产精品永久入口久久久| 天堂网在线播放| wwwwww.欧美系列| 欧美日韩一区二区视频在线观看| 九色国产在线观看| 国产网红主播福利一区二区| 视频一区视频二区视频三区高| 二区在线观看| 1区2区3区国产精品| 免费久久久久久| av免费在线免费| 亚洲高清视频中文字幕| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 欧美大胆成人| 欧美日本国产一区| 在线观看欧美一区二区| 精品久久ai| 亚洲欧美日韩中文在线| 性少妇xx生活| 国产一区二区中文| 91福利视频在线观看| 无码人妻丰满熟妇精品| 激情综合色综合久久综合| 国产富婆一区二区三区| 刘亦菲毛片一区二区三区| 91小视频免费观看| 亚洲乱码一区二区三区三上悠亚| a视频在线免费看| 岛国精品视频在线播放| 黄在线观看网站| 欧美成人三级| 亚洲精品国产综合久久| av女人的天堂| 欧美一区二区三区久久精品| 26uuu另类亚洲欧美日本老年| 一区两区小视频| 粉嫩绯色av一区二区在线观看| 裸模一区二区三区免费| 91网址在线观看| 91黄色免费网站| 美女日批在线观看| 精品一级毛片| 国内精久久久久久久久久人| 中文字字幕在线中文乱码| 99久久综合狠狠综合久久| 亚洲精品9999| 国产高清视频色在线www| 911精品国产一区二区在线| xxxxxx黄色| 99久久九九| 国产高清视频一区三区| 丰满人妻一区二区三区免费视频 | 精品国产不卡一区二区三区| 亚洲一区视频在线播放| 99国产一区| 99国产盗摄| 免费高清在线观看| 色久优优欧美色久优优| 在线观看亚洲免费视频| 久久亚洲专区| 国产精品扒开腿做爽爽爽男男| 成人小说亚洲一区二区三区| 自拍偷拍欧美激情| 国产三级日本三级在线播放| 日韩啪啪网站| 午夜精品一区二区三区在线视| 99久久国产热无码精品免费| 国产精品色哟哟| 蜜臀久久99精品久久久酒店新书| 久久1电影院| 久久久久久久激情视频| av天堂一区二区三区| 中文一区在线播放| 午夜激情福利在线| 欧美**字幕| 国产成人一区二区三区| 视频三区在线观看| 无码av免费一区二区三区试看| 亚洲av无码久久精品色欲| 欧美大黑bbbbbbbbb在线| 国产精品欧美日韩久久| 黄色在线网站| 欧美在线三级电影| 一区二区三区久久久久| 久久精品亚洲一区二区| 欧美激情一区二区三区在线视频| free性m.freesex欧美| 亚洲二区在线播放视频| 国产在线精品观看| 成人免费观看视频| 久久精品国产sm调教网站演员| 波多野结衣在线一区二区| 久久人人爽人人爽人人片av高请| 欧美视频一二区| 午夜精品久久久久久久99樱桃 | 国产日韩欧美不卡在线| 激情六月丁香婷婷| 国产欧美久久一区二区三区| 国产精品免费小视频| av福利在线播放| 欧美日本不卡视频| 免费人成在线观看| 成人免费电影视频| 欧美女人性生活视频| 美日韩中文字幕| 国产精品高清在线| 老司机福利在线视频| 日韩免费成人网| 99精品视频99| 国产日本欧美一区二区| 日韩不卡一二三| 欧美激情亚洲| 九色综合婷婷综合| 九九九伊在线综合永久| 日韩视频免费中文字幕| wwwav在线播放| 狠狠操狠狠色综合网| 91社区视频在线观看| 国产精品一二三四区| 日本网站免费在线观看| 欧美在线电影| 不卡一卡2卡3卡4卡精品在| 无遮挡爽大片在线观看视频| 最近免费中文字幕视频2019| 亚洲大尺度视频| 色婷婷av一区| 欧美日韩亚洲国产另类| 久久精品综合网| 成人一区二区三区仙踪林| 欧美亚洲一级| 欧美 日韩 国产精品| 亚洲区小说区图片区qvod| 91精品国产自产在线| 欧产日产国产精品视频| 最新国产精品拍自在线播放 | 精品91福利视频| 91精品国产高清久久久久久91| av中文资源在线| 欧美v国产在线一区二区三区| 久久久久在线视频| 一区二区三区在线免费观看 | 欧洲乱码伦视频免费| 91精品国产综合久久久久久丝袜| 91精品论坛| 欧美巨乳美女视频| 91露出在线| 日韩国产高清污视频在线观看| 国产又爽又黄免费软件| 欧美性生交xxxxxdddd| 欧美精品一区二区成人| 亚洲国产精品精华液ab| 免费成人蒂法网站| 国产最新精品免费| 日韩免费高清在线| 亚洲高清毛片| 国产女人18毛片| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品一码二码三码在线| 中文幕av一区二区三区佐山爱| 日韩美女视频免费在线观看| a级片免费在线观看| 欧美大尺度在线观看| 天天影视久久综合| 亚洲天堂网在线观看| 亚洲aaaaaaa| 亚洲国产精品电影| 亚洲av无码国产精品永久一区 | 一二三av在线| 欧美bbbbb| 久久久久久久少妇| 亚洲一区视频| 欧美大片在线播放| 亚洲性人人天天夜夜摸| 97免费视频观看| 午夜精品国产| 国产精品视频二| 欧美日韩福利| 亚洲色成人www永久在线观看| 亚洲天天影视网| 中文字幕制服丝袜在线| 色狮一区二区三区四区视频| 亚洲激情图片| 日韩夫妻性生活xx| 亚洲精品久久区二区三区蜜桃臀 | 91亚洲精品一区二区乱码| 91超薄肉色丝袜交足高跟凉鞋| 国产成人亚洲精品青草天美| 在线观看av免费观看| 国产毛片精品一区| 久久aaaa片一区二区| 国产99精品在线观看| 日批视频免费看| 成人av在线电影| 亚洲制服丝袜在线播放| 久久综合99re88久久爱| 风间由美一二三区av片| 久久久久国产精品人| 中文字幕被公侵犯的漂亮人妻| 亚洲国产精华液网站w| 91导航在线观看| 中文字幕日韩一区二区| 亚洲av鲁丝一区二区三区| 亚洲在线视频网站| 色播视频在线播放| 色哦色哦哦色天天综合| a片在线免费观看| 日韩一区二区三区四区五区六区| 亚洲国产精品久久久久久6q| 日韩成人在线视频观看| 国模吧精品人体gogo| 久久精品视频播放| 国产桃色电影在线播放| 欧洲美女免费图片一区| 国产成人精品一区二区三区在线| 91免费高清视频| 国产精品主播在线观看| 欧美主播一区二区三区美女 久久精品人 | 黄色片在线观看免费| 中文字幕日本不卡| 精品少妇一二三区| 日本韩国欧美一区| 国产偷人妻精品一区二区在线| 亚洲大胆美女视频| 成人免费黄色网页| 欧美第一淫aaasss性| 日韩新的三级电影| 亚洲aa中文字幕| 亚洲成在人线免费观看| 一区二区三区四区视频在线观看| 亚洲国产一区二区三区a毛片| 亚洲一区二区蜜桃| 国产成人午夜99999| 成年人免费观看视频网站| 亚洲久草在线视频| 美日韩一二三区| 欧美一区二区三区视频在线| 欧美日韩国产亚洲沙发| 欧美成aaa人片免费看| 美女福利一区二区| αv一区二区三区| 久久亚洲成人| 日日碰狠狠添天天爽超碰97| 久久国产乱子精品免费女| 老熟妇精品一区二区三区| 日韩一区欧美一区| 精品人妻无码一区二区性色| 欧美xxxxxxxx| 精品51国产黑色丝袜高跟鞋| 热久久这里只有精品| 日韩一区二区三区色| 亚洲精品日韩成人| 国产免费成人| 韩国一区二区三区四区| 一区在线观看视频| 蜜臀精品一区二区三区| 亚洲国产精品久久久| 9191在线播放| 91精品国产自产在线| 欧美综合另类| 色综合av综合无码综合网站| 福利91精品一区二区三区| 亚洲综合久久av一区二区三区| 91官网在线免费观看| 午夜性色福利视频| 久久频这里精品99香蕉| 亚洲午夜精品| 人妻无码一区二区三区四区| 激情久久久久久久久久久久久久久久| 我不卡一区二区| 日韩欧美亚洲成人| 先锋av资源站| 8x海外华人永久免费日韩内陆视频 | 在线观看av黄网站永久| 国产国语videosex另类| 你懂的一区二区三区| 日韩精品一区二区三区色欲av| 99精品黄色片免费大全| 欧美a∨亚洲欧美亚洲| 亚洲黄色有码视频| 国模精品视频| 老牛影视免费一区二区| 亚洲人www| 中文字幕在线播放视频| 亚欧色一区w666天堂| 日本人妻熟妇久久久久久| 孩xxxx性bbbb欧美| 欧美sss在线视频| 97成人在线观看视频| 久久久久久日产精品| 成人一二三四区| 永久免费看mv网站入口亚洲| 精品久久在线| 天天操天天干天天玩| 国产电影一区在线| 麻豆chinese极品少妇| 亚洲第一区中文99精品| 欧美gv在线观看| 日本不卡一区二区三区在线观看| 玖玖视频精品| 国产一区在线观看免费| 日韩一区二区三区四区| а√天堂资源官网在线资源| 欧美一区二视频在线免费观看| 日韩av一区二区三区四区| 亚洲欧美精品久久| 日韩欧美高清dvd碟片| 电影在线观看一区| 欧美污视频久久久| 久久精品av麻豆的观看方式| 粉嫩av性色av蜜臀av网站| 亚洲变态欧美另类捆绑| 国产不卡网站| 中文字幕精品一区日韩| 成人做爰69片免费看网站| 六月丁香激情综合| 日韩中文字幕免费视频| 在线播放一区二区精品视频| 成熟丰满熟妇高潮xxxxx视频| 国产清纯美女被跳蛋高潮一区二区久久w| 97超碰人人模人人人爽人人爱| 欧美精品第一页在线播放| 亚洲a级精品| 欧美激情第一区| 精品国产乱码久久久久久婷婷| wwwww在线观看免费视频| 147欧美人体大胆444| 午夜一区二区三区不卡视频| 国产探花在线视频| 亚洲国产精品悠悠久久琪琪| 成人国产精品一区二区免费麻豆| 成人黄色片免费| 久久精品一区八戒影视| 精品国产av一区二区三区| 热久久视久久精品18亚洲精品| 欧美激情无毛| 一级二级黄色片| 亚洲国产另类 国产精品国产免费|