linux Page cache和buffer cache正解

来源:https://www.cnblogs.com/linhaostudy/archive/2018/12/29/10196652.html
-Advertisement-
Play Games

Page cache和buffer cache一直以來是兩個比較容易混淆的概念,在網上也有很多人在爭辯和猜想這兩個cache到底有什麼區別,討論到最後也一直沒有一個統一和正確的結論,在我工作的這一段時間,page cache和buffer cache的概念曾經困擾過我,但是仔細分析一下,這兩個概念實 ...


Page cache和buffer cache一直以來是兩個比較容易混淆的概念,在網上也有很多人在爭辯和猜想這兩個cache到底有什麼區別,討論到最後也一直沒有一個統一和正確的結論,在我工作的這一段時間,page cache和buffer cache的概念曾經困擾過我,但是仔細分析一下,這兩個概念實際上非常的清晰。如果能夠瞭解到這兩個cache的本質,那麼我們在分析io問題的時候可能會更加得心應手。

Page cache實際上是針對文件系統的,是文件的緩存,在文件層面上的數據會緩存到page cache。文件的邏輯層需要映射到實際的物理磁碟,這種映射關係由文件系統來完成。當page cache的數據需要刷新時,page cache中的數據交給buffer cache,但是這種處理在2.6版本的內核之後就變的很簡單了,沒有真正意義上的cache操作。

Buffer cache是針對磁碟塊的緩存,也就是在沒有文件系統的情況下,直接對磁碟進行操作的數據會緩存到buffer cache中,例如,文件系統的元數據都會緩存到buffer cache中。

簡單說來,page cache用來緩存文件數據,buffer cache用來緩存磁碟數據。在有文件系統的情況下,對文件操作,那麼數據會緩存到page cache,如果直接採用dd等工具對磁碟進行讀寫,那麼數據會緩存到buffer cache。

補充一點,在文件系統層每個設備都會分配一個def_blk_ops的文件操作方法,這是設備的操作方法,在每個設備的inode下麵會存在一個radix tree,這個radix tree下麵將會放置緩存數據的page頁。這個page的數量將會在top程式的buffer一欄中顯示。如果設備做了文件系統,那麼會生成一個inode,這個inode會分配ext3_ops之類的操作方法,這些方法是文件系統的方法,在這個inode下麵同樣存在一個radix tree,這裡會緩存文件的page頁,緩存頁的數量在top程式的cache一欄進行統計。從上面的分析可以看出,2.6內核中的buffer cache和page cache在處理上是保持一致的,但是存在概念上的差別,page cache針對文件的cache,buffer是針對磁碟塊數據的cache,僅此而已。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • C#操作SQL資料庫 Connection(連接)對象 形式2.”server=;Intergrated Security=true/SSPI” Command(命令)對象 形式2.new SqlCommand(Sql語句, 連接對象)//省略2,5 形式2.執行select語句(count,sum ...
  • 對象引擎,以路徑形式訪問對象屬性,例data.Product[1].Name。 在做excel模板引擎的時候,為了能方便的調用對象屬性,找了一些模板引擎,不是太大就是不太適用於excel, 因為excel模板中不太適用寫一些語法,所以要簡化,現把對象引擎這一塊簡化抽出來分享 開源地址:https:/ ...
  • 接觸Linux已經有一段時間了,由於實際需要,三三兩兩地掌握了一些基本語法和實用語句,主要都是在日常開發中用得比較多的,條理不是特別清晰,請見諒!下麵開始上硬貨!! 基本操作: 關閉Linux系統的命令:init 0 切換虛擬終端的命令:Ctrl + Alt + F[1~6] 釋:Linux共有6個 ...
  • 有關Linux ipv6模塊載入失敗的問題 同事一個SUSE11sp3環境配置ipv6地址失敗,提示不支持IPv6,請求幫助,第一反應是應該ipv6相關內核模塊沒有載入。 主要檢查內容: ipv6地址是否存在 ifconfig |grep inet6 沒有預設inet6地址 ipv6模塊是否存在 # ...
  • 小編最近想學習一下小程式的開發,然後發現小程式的開發需要功能變數名稱為Https協議,所以就特地去配置了一下,配置成功了就放出來和大家一起分享 ...
  • 網路上有很多關於優秀的關於Paxos 演算法的文章,我下麵進行整理搜集一下: 分散式理論之一:Paxos演算法的通俗理解 維基的簡介:Paxos演算法是萊斯利·蘭伯特(Leslie Lamport,就是 LaTeX 中的"La",此人現在在微軟研究院)於1990年提出的一種基於消息傳遞且具有高度容錯特性的 ...
  • 綜述 Page cache是通過將磁碟中的數據緩存到記憶體中,從而減少磁碟I/O操作,從而提高性能。此外,還要確保在page cache中的數據更改時能夠被同步到磁碟上,後者被稱為page回寫(page writeback)。一個inode對應一個page cache對象,一個page cache對象 ...
  • 一、獲取root許可權 輸入root密碼 二、檢查是否安裝 如果安裝,會顯示安裝版本號,沒有就什麼都不顯示 三、若已安裝過vsftpd,先卸載。卸載前,先停止服務 ,然後再卸載。 停止服務: 卸載: 四、安裝vsftpd **此時可能遇見的錯誤** 這是由於 yum 進程被占用了,執行一下命令,關閉y ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...