ES數(shù)據(jù)寫入調(diào)優(yōu)1

      網(wǎng)友投稿 1087 2022-05-28

      大多數(shù)操作系統(tǒng)都盡可能多地為文件系統(tǒng)緩存使用內(nèi)存,并切換出未使用的應用程序內(nèi)存。這可能導致部分JVM堆被交換到磁盤上。

      對于性能和節(jié)點的穩(wěn)定性來說,這種交換是非常糟糕的,應該不惜一切代價避免。它可能導致垃圾收集持續(xù)幾分鐘而不是幾毫秒,這可能導致節(jié)點響應緩慢,甚至脫離集群。

      Linux/Unix系統(tǒng)中使用mlockall在RAM中鎖定進程的地址空間,阻止Elasticsearch內(nèi)存被交換出去,從而實現(xiàn)禁用Swapping。

      按以下步驟啟用“bootstrap.memory_lock”參數(shù)。

      1.以管理員帳號登錄FusionInsight Manager界面,選擇“集群 > 待操作集群的名稱 > 服務 > Elasticsearch > 配置 > 全部配置 > 自定義”。

      2.添加新的參數(shù)“bootstrap.memory_lock”,設置值為“true”,單擊“保存”按鈕,保存配置并重啟Elasticsearch服務。

      3.使用root用戶登錄任意Elasticsearch數(shù)據(jù)節(jié)點,執(zhí)行如下命令驗證是否修改成功。執(zhí)行命令后結(jié)果顯示包含“true”則表示修改成功。

      curl -XGET "http://ip:httpport/_nodes?filter_path=**.mlockall"

      針對于5個以上機器節(jié)點,為了讓各個實例上的分片均勻分布,添加如下參數(shù),設置每個索引在單個實例上的分片個數(shù),如下所示為每個索引在每個實例上的分片為2個。

      curl -XPUT "http://ip:httpport/myindex/_settings?pretty' -H 'Content-Type:application/json' -d ' { "index.routing.allocation.total_shards_per_node":"2" }'

      默認“index.refresh_interval”為“1s”,即每秒都會強制生成1個新的segments文件,增大索引刷新時間,可以生成更大的segments文件,有效降低IO并減少segments merge的壓力,該配置項可以建索引時指定(或者配置到template里去)。

      如果只是單純導入數(shù)據(jù),不需要做實時查詢,可以把refresh禁用(即設置index.refresh_interval為-1),并設置“index.number_of_replicas”為“0”,當然這樣設置會有數(shù)據(jù)丟失風險。等到數(shù)據(jù)完成導入后,再把參數(shù)設置為合適的值。

      ES數(shù)據(jù)寫入調(diào)優(yōu)1

      命令為單索引下操作如下所示,同時也支持多索引(索引名按逗號分隔)和全索引(用*通配符)操作。

      curl -XPUT "http://ip:httpport/myindex/_settings" -H 'Content-Type: application/json' -d' { "number_of_replicas": 0, "refresh_interval": "180s" }'

      Elasticsearch寫入數(shù)據(jù)時,refresh刷新會生成1個新的segment,segments會按照一定的策略進行索引段合并merge。merge的頻率對寫入和查詢的速度都有一定的影響,如果merge頻率比較快,會占用較多的IO,影響寫入的速度,但同時segment個數(shù)也會比較少,可以提高查詢速度。所以merge頻率的設定需要根據(jù)具體業(yè)務去權(quán)衡,同時保證寫入和查詢都相對快速。Elasticsearch默認使用TieredMergePolicy,可以通過參數(shù)去控制索引段合并merge的頻率:

      1.參數(shù)“index.merge.policy.floor_segment”,Elasticsearch避免產(chǎn)生很小的segment,小于這個閾值的所有的非常小的segment都會merge直到達到這個floor的size,默認是2MB。

      2.參數(shù)“index.merge.policy.max_merge_at_once”,一次最多只merge多少個segments,默認是10。

      3.參數(shù)“index.merge.policy.max_merged_segment”,超過多大size的segment不會再做merge,默認是5GB。

      4.參數(shù)“index.merge.policy.segment_per_tier”默認為10,表示每個tier允許的segment個數(shù),注意這個值要大于等于“index.merge.policy.max_merge_at_once”值,否則這個值會先于最大可操作數(shù)到達,就會立刻做merge,這樣會造成頻繁merge。

      5.參數(shù)“ index.merge.scheduler.max_thread_count ”,單個shard上可能同時合并的最大線程數(shù)。默認會啟動Math.max(1, Math.min(4, Runtime.getRuntime().availableProcessors() / 2))個線程進行merge操作,適用于SSD固態(tài)硬盤。但是如果硬盤是機械硬盤,很容易出現(xiàn)IO阻塞,將線程數(shù)設置為1。

      一般情況下,通過調(diào)節(jié)參數(shù)“index.merge.policy.max_merge_at_once”和“index.merge.policy.segment_per_tier”去控制merge的頻率。

      image.png

      修改參數(shù)命令如下示例:

      curl -XPUT "http://ip:httpport/myindex-001/_settings?pretty" -H 'Content-Type: application/json' -d' { "merge":{ "scheduler":{ "max_thread_count" : "1" }, "policy":{ "segments_per_tier" : "20", "max_merge_at_once": "20", "floor_segment" : "2m", "max_merged_segment" : "5g" } } }'

      Elasticsearch 任務調(diào)度

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Linux基礎知識總結(jié)1 | 文件與目錄
      下一篇:HDOJ1175連連看 DFS
      相關文章
      亚洲一级二级三级不卡| 亚洲视频在线观看免费视频| 亚洲视频在线观看网站| 亚洲综合精品香蕉久久网| 亚洲爆乳无码一区二区三区| 亚洲啪啪免费视频| 亚洲va久久久噜噜噜久久男同| 亚洲午夜国产精品无码老牛影视| 亚洲男人电影天堂| 国产精品亚洲精品青青青 | 亚洲精品国产精品乱码视色| 亚洲欧洲中文日韩av乱码| 亚洲中文字幕久在线| 亚洲av永久综合在线观看尤物 | 国产午夜亚洲精品理论片不卡| 亚洲精品美女久久久久| 亚洲理论片中文字幕电影| 久久久综合亚洲色一区二区三区| 亚洲中文字幕视频国产| 亚洲成av人片在www鸭子| 久久久久亚洲AV片无码| 亚洲日韩精品无码一区二区三区| 国内精品99亚洲免费高清| 亚洲国产精品无码专区| 亚洲人片在线观看天堂无码| 亚洲色在线无码国产精品不卡 | 亚洲第一永久在线观看| 久久久久久亚洲精品中文字幕 | 国产国拍亚洲精品mv在线观看 | 亚洲人成网站影音先锋播放| 亚洲高清一区二区三区电影| gogo全球高清大胆亚洲| 亚洲午夜激情视频| 666精品国产精品亚洲| 亚洲视频.com| 亚洲色偷偷综合亚洲AV伊人| 亚洲国产午夜福利在线播放| 亚洲精品一品区二品区三品区| 亚洲人成图片小说网站| 国产AⅤ无码专区亚洲AV| 亚洲国产精品国产自在在线|