如何優化 Elasticsearch 磁盤空間和使用情況

作者:來自 Elastic?Kofi Bartlett

解釋如何防止和處理磁盤過滿(過度使用)以及磁盤容量未被充分利用的情況。

想獲得 Elastic 認證?了解下一次 Elasticsearch Engineer 培訓的時間吧!

Elasticsearch 擁有許多新功能,幫助你為自己的使用場景構建最佳搜索解決方案。瀏覽我們的示例筆記本了解更多內容,開始免費云端試用,或立即在本地機器上嘗試 Elastic。


磁盤管理在任何數據庫中都非常重要,Elasticsearch 也不例外。如果你沒有足夠的磁盤空間,Elasticsearch 將停止向該節點分配分片。這最終會導致你無法向集群寫入數據,應用程序可能因此面臨數據丟失的風險。另一方面,如果你有太多磁盤空間,那么你就為不需要的資源付出了額外成本。

關于水位線的背景 - watermarks

在你的 Elasticsearch 集群中有各種 “水位線 ”閾值,用于幫助你跟蹤可用磁盤空間。隨著節點上的磁盤逐漸填滿,第一個被觸發的閾值是 “low disk watermark - 低磁盤水位線”。第二個閾值是“high?disk watermark?threshold - 高磁盤水位線閾值”。最后,會達到 “disk flood stage - 磁盤洪水階段”。一旦超過這個閾值,集群將阻止寫入所有在該節點上有一個分片(主分片或副本分片)的索引。讀取(搜索)仍然是可行的。

如何防止和處理磁盤過滿(過度使用)的情況

當你的 Elasticsearch 磁盤過滿時,有多種方法可以處理:

  1. 刪除舊數據:通常,數據不應永久保存。防止和解決磁盤過滿的一種方法是確保當數據達到一定年齡時,被可靠地歸檔并刪除。可以使用 ILM 來實現這一點。
  2. 增加存儲容量:如果你不能刪除數據,可能需要添加更多數據節點或增加磁盤容量,以便保留所有數據而不影響性能。如果你需要為集群增加存儲容量,應該考慮是否只需要增加存儲容量,還是也需要按比例增加 RAM 和 CPU 資源(見下面關于磁盤大小、RAM 和 CPU 比例的部分)。

如何為你的 Elasticsearch 集群增加存儲容量

  1. 增加數據節點數量:請記住,新節點應與現有節點大小相同,并使用相同的 Elasticsearch 版本。
  2. 增加現有節點的大小:在基于云的環境中,通常可以輕松增加現有節點的磁盤大小和 RAM/CPU。
  3. 僅增加磁盤大小:在基于云的環境中,通常可以相對輕松地增加磁盤容量。
  4. 快照與還原:如果你愿意通過自動化流程從備份中按需檢索舊數據,你可以對舊索引進行快照、刪除它們,并在需要時從快照中臨時還原數據。
  5. 減少每個分片的副本數:另一種減少數據的方式是減少每個分片的副本數量。為了實現高可用性,通常每個分片會有一個副本,但當數據變舊時,你可能可以在沒有副本的情況下運行。這通常適用于數據是持久性的,或你有備份可以在需要時還原。
  6. 創建告警:為了防止未來磁盤被填滿并主動采取行動,你應該根據磁盤使用情況創建告警,當磁盤開始填滿時會通知你。

如何防止和處理磁盤容量未被充分利用的情況

如果你的磁盤容量未被充分利用,有多種方法可以減少集群中的存儲體積。

如何減少 Elasticsearch 集群的存儲體積

以下是幾種減少集群存儲體積的方法:

1 . 減少數據節點數量

如果你希望同時減少數據存儲以及 RAM 和 CPU 資源,這是一種最簡單的策略。下線不必要的節點通常可以帶來最大的成本節省。

在下線節點之前,你應當:

  • 確保要下線的節點不是必須的 MASTER 節點。你應始終至少保留三個擁有 MASTER 角色的節點。
  • 將數據分片從要下線的節點遷移出去。

2. 用更小的節點替換現有節點

如果你不能進一步減少節點數量(通常最小配置為 3 個節點),那么你可以考慮縮小現有節點的規格。請記住,建議所有數據節點的 RAM 和磁盤大小相同,因為分片是根據每個節點上的分片數量來平衡的。

操作流程如下:

  • 向集群添加新的、更小的節點
  • 將分片從要下線的節點遷移出去
  • 關閉舊節點

3. 減少節點的磁盤大小

如果你只想減少節點上的磁盤大小,而不改變整個集群的 RAM 或 CPU,那么你可以為每個節點減少磁盤容量。減少 Elasticsearch 節點的磁盤大小并不是一個簡單的過程。

最簡單的方法通常是:

  • 從節點上遷移分片
  • 停止該節點
  • 為節點掛載一個合適大小的新數據卷
  • 將所有數據從舊磁盤卷復制到新卷
  • 卸載舊卷 A
  • 啟動節點并將分片遷移回該節點

這個過程要求其他節點有足夠容量來臨時存放該節點的分片。在很多情況下,管理這個過程的成本可能會超過節省的磁盤開銷。因此,直接用一個具有目標磁盤大小的新節點替換原節點可能更簡單(參見上文 “用更小的節點替換現有節點”)。

當你為不必要的資源付費時,顯然可以通過優化資源使用來降低成本。

磁盤大小、RAM 和 CPU 之間的關系

集群中磁盤容量與 RAM 的理想比例取決于你具體的使用場景。因此,在考慮更改存儲容量時,你也應該評估當前的磁盤/RAM/CPU 比例是否平衡,以及是否需要按比例增加或減少 RAM/CPU。

RAM 和 CPU 的需求取決于索引活動的數量、查詢的數量和類型,以及被搜索和聚合的數據量。這些通常與存儲在集群中的數據量成正比,因此也應與磁盤大小相關。

磁盤容量與 RAM 之間的比例會根據使用場景的不同而變化。以下是一些示例:

Index activityRetentionSearch activityDisk capacityRAM
Enterprise search appModerate log ingestionLongLight2TB32GB
App monitoringIntensive log ingestionShortLight1TB32GB
E-commerceLight data indexingIndefiniteHeavy500GB32GB

請記住,修改節點機器的配置必須小心進行,因為這可能涉及節點停機,你需要確保分片不會開始遷移到其他已經超負荷的節點上。

原文:How to optimize Elasticsearch disk space and usage - Elasticsearch Labs

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906236.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

itop-3568開發板驅動開發指南-實驗程序的編寫

本實驗對應的網盤路徑為:iTOP-RK3568 開發板【底板 V1.7 版本】\03_【iTOP-RK3568開發板】指南教程\02_Linux 驅動配套資料\04_Linux 驅動例程\02。 本章實驗將編寫 Linux 下的驅動傳參實例代碼,通過“insmod”命令進行參數的傳遞,并將相應的…

lesson03-簡單回歸案例(理論+代碼)

一、梯度下降 二、 線性方程怎么樣? 三、有噪音嗎? 四、讓我們看一個列子 五、如何優化 啟發式搜索 學習進度 六、線性回歸、邏輯回歸、分類 總結、 簡單線性回歸是一種統計方法,用于確定兩個變量之間的關系。具體來說,它試圖…

【C語言】易錯題 經典題型

出錯原因&#xff1a;之前運行起來的可執行程序沒有關閉 關閉即可 平均數&#xff08;average&#xff09; 輸入3個整數&#xff0c;輸出它們的平均值&#xff0c;保留3位小數。 #include <stdio.h> int main() {int a, b, c;scanf("%d %d %d", &a, &…

修改樣式還能影響功能?是的!

最常見的幾種樣式導致按鈕點擊無效的情況&#xff1a; 1. pointer-events: none; &#x1f449; 點擊被徹底屏蔽 癥狀&#xff1a;按鈕完全不能點擊&#xff0c;事件不會觸發。 可能原因&#xff1a;這個樣式讓元素“無法響應鼠標事件”。 button {pointer-events: none; }…

ai決策平臺:AnKo如何推動引領智能化未來?

ai決策平臺&#xff1a;AnKo如何推動引領智能化未來&#xff1f; ai決策平臺正在改變企業運營模式&#xff0c;AnKo作為ai決策平臺的代表&#xff0c;為智能管理提供新方向。借助ai決策平臺&#xff0c;組織在效率與準確性上實現飛躍。ai決策平臺的力量正被廣泛認可。 ai決策…

開疆智能Profient轉ModbusTCP網關連接ABB機器人MODBUS TCP通訊案例

本案例是通過開疆智能Profinet轉ModbusTCP網關將西門子PLC與ABB機器人進行通訊 因西門子PLC采用Profinet協議&#xff0c;而ABB機器人采用的是ModbusTCP通訊。故采取此種方案。 配置過程&#xff1a; 1.MODBUS/TCP基于以太網&#xff0c;故ABB機器人在使用時需要有616-1PCIN…

2089. 找出數組排序后的目標下標——O(n)做法!

本題要求在一個已排序的數組 nums 中&#xff0c;找出所有等于目標值 target 的元素下標。若不存在這樣的元素&#xff0c;則返回 {-1, -1}。解決該問題有兩種主要方法&#xff1a;二分查找法和統計計數法。 二分查找法&#xff1a;首先對數組進行排序&#xff0c;然后通過二分…

pyspark測試樣例

from pyspark.sql import SparkSession from pyspark.sql.functions import col, lit, concat 創建 SparkSession spark SparkSession.builder.appName(“SparkSQLExample”).getOrCreate() 創建 DataFrame&#xff08;可以是從 CSV、JSON 等文件讀取&#xff09; data […

【AWS入門】AWS身份驗證和訪問管理(IAM)

【AWS入門】AWS身份驗證和訪問管理&#xff08;IAM&#xff09; [AWS Essentials] AWS Identity and Access Management (IAM) By JacksonML 眾所周知&#xff0c;AWS亞馬遜云科技位列全球云計算服務第一位&#xff0c;并且持續為廣大客戶提供安全、穩定的各類云產品和服務。…

HarmonyOS NEXT 適配高德地圖FlutterSDK實現地圖展示,添加覆蓋物和移動Camera

HarmonyOS NEXT 適配高德地圖 Flutter SDK 實現地圖展示&#xff0c;添加覆蓋物和移動 Camera 在現代移動應用開發中&#xff0c;地圖功能是許多應用的核心組成部分之一。HarmonyOS NEXT 提供了強大的跨平臺開發能力&#xff0c;而高德地圖 Flutter SDK 則為開發者提供了豐富的…

三鍵標準、多鍵usb鼠標數據格式

三鍵標準usb鼠標數據格式 滾輪上滾 滾輪下滾 鼠標快速上移 鼠標快速右移 鼠標快速左移 鼠標右鍵單擊_抬起 鼠標中鍵單擊_抬起 鼠標左鍵單擊_抬起 鼠標左鍵先按_右鍵再按_同時抬起 鼠標左右鍵同時按下_同時抬起 鼠標左右鍵同時按下_右鍵先抬 多鍵usb鼠標…

軟件架構風格系列(7):閉環控制架構

文章目錄 引言一、閉環控制架構&#xff1a;讓系統學會“自我調節”的魔法&#xff08;一&#xff09;從溫控系統理解核心原理&#xff08;二&#xff09;核心組件解析 二、架構設計圖&#xff1a;閉環控制的“四大核心環節”三、Java實戰&#xff1a;手寫一個智能溫控系統&…

Python中的組合數據類型

一、列表類型 列表是指一系列的按特定順序排列的元素組成。使用[]定義列表&#xff0c;元素與元素之間使用英文的逗號分隔&#xff0c;列表中的元素可以是任意的數據類型。 #直接使用[]創建 lst[hello,world,99.8,100] print(lst)#可以使用內置的list()函數創建列表 lst2list(h…

集合進階2

Java不可變集合、Stream流與方法引用深度解析 一、不可變集合&#xff08;Immutable Collections&#xff09;進階指南 1.1 不可變集合核心特性 防御性編程&#xff1a;防止外部修改數據&#xff08;如傳遞集合給第三方庫時&#xff09;線程安全&#xff1a;天然支持多線程讀…

MySQL企業版免費開啟,強先體驗

近期Oracle突然宣布&#xff0c;MySQL企業版面向開發者免費開放下載&#xff0c;這一消息瞬間引爆DBA圈。作為數據庫領域的“頂配車型”&#xff0c;企業版長期因高昂授權費讓中小團隊望而卻步&#xff0c;如今免費開放無異于“勞斯萊斯開進菜市場”。 本文將深度拆解企業版的…

數據要素及征信公司數據要素實踐

數據要素及征信公司數據要素實踐 1.數據要素的定義與核心特征2.征信公司應用數據要素的實踐路徑3.總結1.數據要素的定義與核心特征 數據要素是數字經濟時代的新型生產要素,指以電子形式存在、通過計算方式參與生產經營活動并創造價值的數據資源。 其核心特征包括: 新型生產…

Golang 范型

引言 Go 從 1.18 開始正式支持泛型&#xff0c;帶來了更強的類型抽象能力&#xff0c;使得我們可以編寫更通用、可復用的代碼。本文檔將介紹下泛型與應用的一些內容 什么是泛型 泛型&#xff08;Generic&#xff09;是一種允許你編寫“參數化類型”的編程方式。你可以將類型…

vue-ganttastic甘特圖label標簽橫向滾動固定方法

這個甘特圖之前插件里&#xff0c;沒有找到能固定label標簽在屏幕上的辦法&#xff0c;用css各種辦法都沒有實現&#xff0c;所以我我直接手寫定位&#xff0c;用js監聽滾動條滾動的距離&#xff0c;然后同步移動甘特圖label標簽&#xff0c;造成一種定位的錯覺&#xff0c;以下…

VS2017編譯openssl3.0.8

openssl是一個功能豐富且自包含的開源安全工具箱。它提供的主要功能有:SSL協議實現(包括SSLv2、SSLv3和TLSv1)、大量軟算法(對稱/非對稱/摘要)、大數運算、非對稱算法密鑰生成、ASN.1編解碼庫、證書請求(PKCS10)編解碼、數字證書編解碼、CRL編解碼、OCSP協議、數字證書驗證、P…

16【架構進階】Flask藍圖與應用工廠模式:構建企業級Web應用的核心技巧

【架構進階】Flask藍圖與應用工廠模式&#xff1a;構建企業級Web應用的核心技巧 前言&#xff1a;為什么應用架構決定項目的天花板&#xff1f; 在Flask開發中&#xff0c;隨著項目規模的擴大&#xff0c;如何組織代碼結構成為決定項目可維護性和擴展性的關鍵因素。單文件應用…