Apache Ignite 的 Pages Writes Throttling(頁面寫入節流)


🌟 一、什么是 Checkpointing(檢查點機制)?

在 Apache Ignite 中:

  • 數據是先保存在內存中(RAM),然后異步寫入磁盤。
  • 當數據被修改時,它首先被更新在內存中的“頁”上(稱為 Dirty Page 臟頁)。
  • 這些臟頁最終需要被持久化到磁盤文件中,以確保數據不會因節點宕機而丟失。
  • 這個將臟頁從內存同步到磁盤的過程就叫做 Checkpointing(檢查點機制)

📌 簡單來說:Checkpointing 是把內存中修改過的數據定期刷到磁盤上。


?? 二、為什么 Checkpointing 可能導致寫性能下降甚至歸零?

情況1:臟頁在寫入前又被修改了

  • 如果一個臟頁在等待 checkpoint 寫入磁盤的過程中再次被修改:
    • 它的舊狀態會被復制到一個叫 Checkpointing Buffer(檢查點緩沖區) 的特殊區域。
    • 這樣做的目的是為了保證 WAL(Write-Ahead Logging)機制的一致性。

🔁 舉個例子:
假設你修改了一個頁 A,它變成臟頁;
在它還沒被 checkpoint 到磁盤前,你又改了一次;
那么第一次修改的內容必須被保留下來(放到 checkpoint buffer),以便將來恢復使用。

問題來了:

  • 如果很多頁都在頻繁修改,checkpoint buffer 就會迅速被填滿。
  • 一旦 buffer 溢出(overflow),Ignite 就會 暫停所有寫操作,直到當前 checkpoint 完成。
  • 結果就是:寫入性能驟降為 0!

情況2:臟頁比例達到閾值

  • 即使 checkpoint 正在運行,如果又有大量新的臟頁產生,達到了系統設定的閾值:
    • Ignite 會 再次觸發一個新的 checkpoint
    • 并且會 阻塞所有寫操作,直到第一個 checkpoint 完成。

📌 所以,如果磁盤慢或寫入壓力大,就會不斷出現這種情況,形成一種類似“鏈鋸”的行為(Checkpointing Chainsaw)——不停觸發 checkpoint、阻塞寫入、再觸發…


🧠 三、Pages Writes Throttling 是怎么解決這個問題的?

為了解決上面提到的寫入性能驟降問題,Ignite 提供了 Pages Writes Throttling(頁面寫入節流) 機制。

它的工作原理如下:

  • 當 checkpoint buffer 快滿了 或者 dirty page 比例快速上升時:
    • Ignite 主動 降低寫入速度,讓寫入的速度不超過磁盤可以處理的能力。
  • 相當于給寫入操作加上了一個“限速器”,不讓它們太快地堆積在 checkpoint buffer 中。

類比理解:

想象你在高速公路上開車(寫入操作),前方施工(checkpoint 處理慢)。如果不減速,就會堵死(buffer overflow → 停止寫入)。

Throttling 就像是交通管制,告訴你:“別開太快,前面來不及處理。”


? 四、總結一下關鍵點:

概念含義
Dirty Page已在內存中修改但尚未寫入磁盤的數據頁
Checkpointing定期將內存中的臟頁寫入磁盤,用于持久化和恢復
Checkpointing Buffer存放臟頁的舊版本,用于 WAL 日志一致性
Checkpointing Chainsaw不斷觸發 checkpoint 導致寫入阻塞的現象
Pages Writes Throttling當寫入速度過快時,自動限制寫入速率,避免系統崩潰

💡 五、建議做法

如果你遇到寫入性能波動劇烈、甚至中斷的問題,可以嘗試:

  1. 啟用 Pages Writes Throttling(默認已啟用)
  2. 調整相關參數
    • setCheckpointWriteOrder():控制是否順序寫
    • setThrottlingEnabled(true):顯式啟用節流
  3. 優化磁盤性能
    • 使用更快的 SSD
    • 避免磁盤 IO 成為瓶頸
  4. 合理設置 Checkpointing 時間間隔
  5. 監控臟頁數量和 checkpoint buffer 使用情況

如果你有具體的配置、日志內容或性能表現,我可以幫你進一步分析和調優。

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

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

相關文章

uni-app 學習筆記:使用深度選擇器修改第三方庫組件的樣式

在uni-app中,深度選擇器(Deep Selector)是一個非常重要的概念,它允許父組件穿透樣式隔離,從而修改子組件的內部樣式。1.什么是uni-app深度選擇器深度選擇器是一種CSS選擇器,用于穿透組件的樣式隔離機制&…

物聯網IOT平臺到底是啥

物聯網IOT平臺:萬物互聯的智慧中樞清晨,智能鬧鐘輕柔喚醒你,咖啡機自動開始沖泡;離家時,空調自動關閉,安防攝像頭啟動;辦公室內,生產線傳感器實時回傳設備狀態,倉庫管理系…

MySQL詳解二

MySQL詳解二索引主鍵索引唯一索引普通索引組合索引全文索引主鍵選擇約束索引實現B樹聚集索引輔助索引索引存儲innodb 體系結構最左匹配原則覆蓋索引索引下推索引失效索引原則索引 數據庫中的數據是以記錄為單位的,如果一條一條進行查找,幾十萬數據就已經…

深度學習中的模型剪枝工具Torch-Pruning的使用

Torch-Pruning(TP)是一個結構化剪枝框架,源碼地址:https://github.com/VainF/Torch-Pruning,最新發布版本v1.6.0,License為MIT。 TP支持對各種深度神經網絡進行結構化剪枝。與通過掩碼將參數設置為零的torch.nn.utils.prune不同&a…

力扣-121.買賣股票的最佳時機

121.買賣股票的最佳時機 class Solution {public int maxProfit(int[] prices) {int min prices[0];int max 0;for (int i 1; i < prices.length; i) {max Math.max(prices[i] - min, max);if (prices[i] < min) {min prices[i];}}return max;} }小結&#xff1a;貪…

lvs原理及實戰部署

一、集群與分布式系統 1 集群 1-1概念 集群式架構是將多個相同或相似的節點組合在一起&#xff0c;形成一個邏輯上的 “整體”&#xff0c;對外提供統一的服務或資源。節點之間通常具有較高的同構性&#xff08;硬件、軟件配置相似&#xff09;&#xff0c;且緊密協作。 1-2 三…

[Linux]如何設置靜態IP位址?

自從將Ubuntu Server 24.04 LTS作業系統建置在VM上後&#xff0c;逐漸導入一些容器和微服務器並使可由其他Client端來連接使用&#xff0c;其中包含AIGC模型和自動化工作流等服務&#xff0c;例如Open-WebUI和n8n。然而&#xff0c;若VM重新開機或路由器因故斷電等等狀態&#…

【Leecode 隨筆】

文章目錄題目一&#xff1a;盛最多水的容器題目描述&#xff1a;題目分析&#xff1a;解題思路&#xff1a;示例代碼&#xff1a;深入剖析&#xff1a;題目二&#xff1a;最長無重復字符的子串題目描述&#xff1a;題目分析&#xff1a;解題思路&#xff1a;示例代碼&#xff1…

Springboot項目應用PageInfo分頁問題失效

使用github的pagehelper分頁依賴<!-- 分頁控件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.0</version><scope>compile</scope></dependency&…

【無標題】標準模型粒子行為與11維拓撲量子色動力學模型嚴格對應的全面論述

標準模型粒子行為與11維拓撲量子色動力學模型嚴格對應的全面論述標準模型粒子與拓撲結構的嚴格對應 mermaid graph LRsubgraph 標準模型粒子A[費米子] --> A1[夸克]A --> A2[輕子]B[玻色子] --> B1[規范玻色子]B --> B2[希格斯]endsubgraph 11維拓撲模型C[實體頂點…

SQL一些關于存儲過程和使用的總結

存儲過程&#xff1a;數據庫里的 "定制工具箱"存儲過程就像一個裝滿工具的箱子&#xff0c;你需要什么功能&#xff0c;就調用對應的工具。它是用 SQL 語句寫好的一段程序&#xff0c;存儲在數據庫里&#xff0c;隨時可以調用。創建存儲過程 就像在工具箱里放新工具。…

springCloud -- 微服務01

目錄 一、認識微服務 1.單體架構 2.微服務 3.SpringCloud 二、微服務拆分 1.服務拆分原則 2.服務調用 3. RestTemplate 三、服務注冊和發現 1. 注冊中心原理 2. 服務發現 2.1 服務注冊 2.2 服務發現 四、OpenFeign 一、認識微服務 1.單體架構 單體架構就是整個項目中所有功能…

Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring 論文閱讀

用于動態場景去模糊的深度多尺度卷積神經網絡 摘要 針對一般動態場景的非均勻盲去模糊是一個具有挑戰性的計算機視覺問題&#xff0c;因為模糊不僅來源于多個物體運動&#xff0c;還來源于相機抖動和場景深度變化。為了去除這些復雜的運動模糊&#xff0c;傳統的基于能量優化的…

PDF 拆分合并PDFSam:開源免費 多文件合并 + 按頁碼拆分 本地處理

各位打工人和學生黨們&#xff0c;你知道嗎&#xff0c;處理PDF文件簡直是咱們的日常噩夢啊&#xff0c;尤其是遇到要合并好幾個文件&#xff0c;或者從中摳幾頁出來的時候&#xff0c;簡直頭大如斗&#xff01;今天給你們安利一個神仙工具&#xff0c;PDFSam&#xff0c;聽我的…

AI產品經理面試寶典第32天:AI+工業場景落地核心問題與應答策略

一、AI+工業落地價值怎么答? 面試官:AI在工業領域能創造哪些核心價值?請用具體案例說明 你的回答: AI在工業領域創造價值的底層邏輯是"數據閉環"。以阿里云ET工業大腦為例,通過采集生產線3000+傳感器數據,構建出影響良品率的60個關鍵變量模型。當數據流經AI…

【09】MFC入門到精通——MFC 屬性頁對話框的 CPropertyPage類 和 CPropertySheet 類

文章目錄九、屬性頁對話框的類CPropertyPage類 和 CPropertySheet 類。9.1 CPropertyPage 類&#xff08;1&#xff09;構造函數&#xff08;2&#xff09;CancelToClose()函數&#xff08;3&#xff09;SetModified()函數&#xff08;4&#xff09;可重載函數9.2 CPropertyShe…

Python學習筆記4

時間:2025.7.18學習內容&#xff1a;【語法基礎】if判斷、比較運算符與邏輯運算符一、if判斷if判斷基本格式&#xff1a;if要判斷的條件&#xff0c;條件成立時要做的事情注意&#xff1a;input內默認存儲的是字符串age17 if age<18:print(未成年不能上網) scoreinput(你的成…

20250718-2-Kubernetes 應用程序生命周期管理-Pod對象:基本概念(豌豆莢)_筆記

二、Kubernetes應用程序生命周期管理&#xfeff;1. 課程內容概述主要內容&#xff1a;Pod資源共享實現機制管理命令應用自修復&#xff08;重啟策略健康檢查&#xff09;環境變量Init container靜態Pod2. Pod對象介紹&#xfeff;1&#xff09;Pod基本概念&#xfeff;&#x…

為Notepad++插上JSON格式化的翅膀

文章目錄概要安裝步驟效果展示概要 JSMinNPP.dll 是一個 Notepad 插件&#xff0c;用于壓縮 JavaScript 代碼和格式化JSON字符床。以下是安裝和使用的詳細步驟&#xff1a; 安裝步驟 下載 JSMinNPP.dll 插件 https://pan.quark.cn/s/73dd0ac225be 放置 DLL 文件 打開 Notepa…

STM32-第七節-TIM定時器-3(輸入捕獲)

一、簡介&#xff1a;1.名稱&#xff1a;IC&#xff0c;輸入捕獲2.電路&#xff1a;如圖為通用定時器框圖&#xff0c;下半部分的左半模塊&#xff0c;與輸出比較部分共用捕獲/比較寄存器與引腳。3.功能&#xff1a;當通道輸入引腳出現電平跳變時&#xff0c;當前CNT的值&#…