怎么處理[TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark

這個錯誤說明 Elasticsearch 的磁盤空間嚴重不足,已觸及最高級別(flood-stage)的水位線。作為自我保護機制,Elasticsearch ?自動將受影響的索引設置為只讀模式 (read-only-allow-delete)?,從而阻止寫入操作(包括索引新數據),只允許刪除操作。核心原因在于節點磁盤空間不足。以下是完整解決步驟:


1. ?確認磁盤使用狀況?

# 查看各節點磁盤使用率(ES API)
GET _cat/allocation?v&h=node,disk.percent,disk.used,disk.avail,disk.total,shards# 系統級檢查(在ES節點服務器執行)
df -h                # 查看所有掛載點空間
du -sh /path/to/es/data/*  # 定位大索引目錄

2. ?緊急釋放磁盤空間?

優先選項:通過ES API刪除數據
# 刪除指定索引(謹慎操作!)
DELETE /old_index-2020-*# 使用Curator工具自動化清理(推薦)
curator_cli --host 127.0.0.1 delete_indices --filter_list '[{"filtertype": "age","source": "creation_date","direction": "older","unit": "days","unit_count": 30},{"filtertype": "pattern","kind": "prefix","value": "logs-"}
]'
次選選項:清理ES日志 & 臨時文件
# 刪除ES日志(調整logging.yml避免過大日志)
rm /var/log/elasticsearch/*.log.* # 清理系統臨時文件
sudo apt-get clean          # Debian/Ubuntu
sudo yum clean all          # CentOS/RHEL
journalctl --vacuum-size=100M  # 清理journal日志
?? 危險操作(僅在絕對必要時)
# 手動刪除索引文件(可能導致數據損壞)
# 先關閉ES服務!然后刪除大索引目錄
systemctl stop elasticsearch
rm -rf /data/elasticsearch/nodes/0/indices/old_index-2020-*
systemctl start elasticsearch

3. ?臨時解除索引只讀阻塞?

操作前確保已釋放足夠空間(建議超過low水位線)。

PUT /.async-search/_settings
{"index.blocks.read_only_allow_delete": null
}

4. ?調整ES磁盤水位線?

elasticsearch.yml中設置更合理的閾值(根據實際磁盤容量調整):

# 緊急水位線(默認95%)
cluster.routing.allocation.disk.watermark.flood_stage: 90% # 高水位線(默認90%)
cluster.routing.allocation.disk.watermark.high: 85%  # 低水位線(默認85%)
cluster.routing.allocation.disk.watermark.low: 80%   

?重啟ES節點? 或 使用動態設置:

PUT _cluster/settings
{"transient": {"cluster.routing.allocation.disk.watermark.low": "80%","cluster.routing.allocation.disk.watermark.high": "85%","cluster.routing.allocation.disk.watermark.flood_stage": "90%","cluster.info.update.interval": "1m"  # 檢查磁盤頻率}
}

5. ?長期預防措施?

?措施??操作?
?監控告警?配置Prometheus + Grafana監控磁盤空間,設置85%使用率告警閾值
?定期維護?使用ILM (Index Lifecycle Management) 自動滾動刪除舊索引
?擴容磁盤?單節點擴展磁盤 或 增加新數據節點
?配置備份?使用Snapshot & Restore 備份到S3/NFS,定期刪除本地舊快照
?冷熱架構?部署熱節點(SSD)+ 冷節點(大容量HDD),通過index.routing.allocation遷移數據

處理流程總結

?關鍵建議:?? 始終保留至少 ?20% 的磁盤空閑空間,避免ES觸發自我保護。定期清理舊數據 比 被動處理磁盤滿 更可靠!🚀

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

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

相關文章

pytorch學習-11卷積神經網絡(高級篇)

2.線性模型 3.梯度下降算法 4.反向傳播(用pytorch算梯度) 5.用pytorch實現線性回歸 6.logistic回歸 7.處理多維特征的輸入 8.加載數據集 9.多分類問題 10.卷積神經網絡(基礎篇) 11.卷積神經網絡(高級篇)_嗶哩嗶哩_bilibili 11.1 GoogleNet Google…

ubuntu 安裝QT

在 Ubuntu 系統上安裝 Qt 可以通過以下步驟完成,以下是詳細的安裝指南 : 1. 安裝前的準備工作 在開始安裝 Qt 之前,需要確保你的 Ubuntu 系統已經更新到最新版本,并且安裝了一些必要的依賴。 1.1 更新系統 首先,打…

CppCon 2018 學習:RAPID PROTOTYPING OF GRAPHICS SHADERS IN

這段內容在講**著色器(Shader)**的基礎概念,尤其是它在現代 GPU(圖形處理單元)中的作用。以下是逐條解釋與理解: “Depicting depth perception in 3D models or illustrations by varying levels of darkn…

Angular v20版本正式發布

過去幾年對 Angular 來說很具變革性,我們推出了像 Signals 這樣的反應性功能和 Zoneless 應用的強大能力。我們希望這些功能可以幫助 Angular 社區構建下一代的 Web 應用,實現快速上市和強大的性能。 我們的旅程才剛剛開始!Angular v20 是最新的發布版本,我們花費了無數個小…

Oracle如何使用序列 Oracle序列使用教程

Oracle序列(sequence)是一種數據庫項,能夠生成一個整數序列。通常用于填充數字類型的主鍵列。 Oracle序列 Oracle序列使用教程: 1、創建序列: CREATE SEQUENCE sequence_name[START WITH start_num][INCREMENT BY incr…

深入探索 Vanna:讓數據庫交互更智能

深入探索 Vanna:讓數據庫交互更智能 在數字化時代,與數據庫進行高效交互是許多開發者、數據分析師和企業面臨的挑戰。傳統的 SQL 查詢編寫不僅需要對數據庫結構有深入的了解,還需要花費大量的時間和精力來調試和優化。Vanna,一個…

C#上位機之網口通信與協議!

文章目錄前言一、網口通信概念二、使用網口通信準備三、使用步驟前言 C#上位機之網口通信與協議! 一、網口通信概念 定義 :Socket 可以理解為一個通信端點,它提供了應用程序與網絡之間的接口,使得應用程序能夠在網絡上發送和接收…

Android Studio 創建類時如何自動添加類注釋

打開IDEA或AS,點擊菜單欄File——Settings——Editor——File and Code Templates。 點擊右邊Tab頁的Includes,選擇File Header,修改類頭模版,如圖: 記得選中Project,否則默認是整個AS都會進行設置

C++11:shared_ptr的設計哲學(原理+源碼):內存安全和性能的架構權衡

0.簡介 在C編程世界中,內存管理是一把雙刃劍,手動管理帶來了極致的內存控制能力,但也帶來了像內存泄漏,野指針等問題;自動垃圾回收雖然安全,但卻會帶來一定的性能損耗。本文將介紹C11引入shared_ptr&#…

Mysql EXPLAIN 執行計劃

EXPLAIN SELECT SQl。。。。界面filtered儲引擎返回的數據在經過服務器層 WHERE 條件過濾后,剩余數據占總行數的百分比估計值rows * filtered/100 越接近100%效率越高rowspossible_keys 可能選擇的索引key最終決定選擇的行partitions問了哪些分區select_type查詢…

力扣刷題記錄【1】146.LRU緩存

前言: 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類: LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中,則返回關鍵字的值&…

西門子S7-1200 PLC主流通信方法及應用

一、通信基礎 1. 網絡術語與設備 - 關鍵設備:交換機、路由器、網關等。 - 物理接口:RS-485(支持多點通信)、RS-232C(點對點串行通信)。 2. OSI參考模型 - 核心框架:理解協議分層&…

MySQL實現任意級子目錄的主要方案以及區別

常見的實現方案及區別 1. 鄰接表(Adjacency List) 方案描述: 每條記錄存儲一個節點的父節點ID。 表結構大致: id INT PRIMARY KEY, name VARCHAR(...), parent_id INT -- 指向父節點的ID,根節點為NULL或0優點&…

Linux網絡socket套接字(完)(5)

文章目錄前言一、多進程版的Tcp網絡程序捕捉SIGCHLD信號讓孫子進程提供服務二、多線程版的Tcp網絡程序三、線程池版的Tcp網絡程序四、Tcp協議通訊流程通訊流程總覽三次握手的過程數據傳輸的過程四次揮手的過程總結前言 結束嘍,至少這個Tcp套接字有關內容要結束了~ ?…

Web3 Study Log 003

Web3 Study Log 003 2025-7-5 這幾天各種各樣的瑣事,處理完了,真的煩,估計能消停一段時間了… 今天終于能夠坐下來好好學習,今天學習了chainlink的使用,能夠獲取 ETH/USD 實時價格,然后寫了一個簡單的眾…

Kotlin:2.1.20 的新特性

一、概述 The Kotlin 2.1.20 release is here! Here are the main highlights: Kotlin 2.1.20發布了,主要亮點如下: K2 compiler updates: updates to the new kapt and Lombok pluginsKotlin Multiplatform: new DSL to replace Gradle’s Application …

設計模式 | 觀察者模式

觀察者模式(Observer Pattern)是行為型設計模式中的事件通知專家,它定義了對象間一種一對多的依賴關系,當一個對象狀態改變時,所有依賴它的對象都會自動收到通知并更新。這種模式實現了發布-訂閱機制,是事件…

Apache Struts2 遠程命令執行漏洞(S2-052)

一、漏洞概述 S2-052 是 Apache Struts2 框架中一個高危的遠程代碼執行漏洞(CVE-2017-9805),由安全研究人員于 2017 年發現并公開。該漏洞源于 Struts2 的 REST 插件在使用 XStream 組件處理 XML 反序列化時,未對用戶輸入的 XML 數…

RS觸發器Multisim電路仿真——硬件工程師筆記

目錄 1 RS觸發器基礎知識 1.1 工作原理 1.2 電路結構 1.3 特點 1.4 應用 1.5 設計考慮 1.6 總結 2 與非門實現基本RS觸發器 2.1 電路結構 2.2 工作原理 2.3 特點 2.4 總結 3 或非門實現基本RS觸發器 3.1 電路結構 3.2 工作原理 3.3 特點 3.4 總結 4 與非門實…

提示技術系列(12)——程序輔助語言模型

什么是提示技術? 提示技術是實現提示工程目標的具體技術手段,是提示工程中的“工具庫”。 什么又是提示工程? 提示工程是指通過設計、優化和迭代輸入到大語言模型(LLM)的提示(Prompt)&#xff…