Buffer和Cache的區別

?

現在不都是只有page cache了嗎? buffer pages其實也是page cache里面的頁。只是多了一層抽象,通過buffer_head來進行一些訪問管理
對,從Linux算法實現的角度,page cache和buffer cache目前是一樣的,但是從功能抽象和具體應用來講,這兩者還是存在區別的,這一點可以從top工具的統計信息中看得出來,關注一下buffer和 cache這兩個統計量。
增加一些資料:
A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use.
在終端中敲入:free
顯 示:?total? used? free? shared? buffers? cached
Mem:??? 255268 238332? 16936??? 0????? 85540??? 126384
-/+ buffers/cache:26408? 228860
系統的總物理內存:255268Kb(256M),但系統 當前真正可用的內存并不是第一行free 標記的 16936Kb,它僅代表未被分配的內存。
我們使用total1、used1、 free1、used2、free2 等名稱來代表上面統計數據的各值,1、2 分別代表第一行和第二行的數據。
total1:表示物理 內存總量。
used1:表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存并未實際使用。
free1:未被分配的內存。
shared1:共享內存,一般系統不會用到,這里也不討論。
buffers1: 系統分配但未被使用的buffers 數量。
cached1:系統分配但未被使用的cache 數量。buffer 與cache 的區別見后面。
used2:實際使用的buffers 與cache 總量,也是實際使用的內存總量。
free2:未被 使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。
可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1

---------------------------------------------------------------------------------------------------------------------------------------------------

緩存(cached)是把讀取過的數據保存起來,重新讀取時若命中(找到需要的數據)就不要去讀硬盤了,若沒有命中就讀硬盤。其中的數據會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往后排,直至從中刪除。?
緩 沖(buffers)是根據磁盤的讀寫設計的,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反復尋道,從而提高系統性能。linux有一個守護進程定期 清空緩沖內容(即寫入磁盤),也可以通過sync命令手動清空緩沖。舉個例子吧:我這里有一個ext2的U盤,我往里面cp一個3M的MP3,但U盤的燈 沒有跳動,過了一會兒(或者手動輸入sync)U盤的燈就跳動起來了。卸載設備時會清空緩沖,所以有些時候卸載一個設備時要等上幾秒鐘。?
修改/etc/sysctl.conf中的vm.swappiness右邊的數字可以在下次開機時調節swap使用策略。該數字范圍是0~100,數字越大越傾向于使用swap。默認為60,可以改一下試試。–兩者都是RAM中的數據。
簡單來說,buffer是即將要被寫入磁盤的,而cache是被從磁盤中讀出來的。
buffer是由各種進程分配的,被用在如輸入隊列等方面。一個簡單的例子如某個進程要求有多個字段讀入,在所有字段被讀入完整之前,進程把先前讀入的字段放在buffer中保存。

cache經常被用在磁盤的I/O請求上,如果有多個進程都要訪問某個文件,于是該文件便被做成cache以方便下次被訪問,這樣可提高系統性能。

Buffer Cachebuffer cache,又稱bcache,其中文名稱為緩沖器高速緩沖存儲器,簡稱緩沖器高緩。另外,buffer cache按照其工作原理,又被稱為塊高緩。

?。。。。。。。。。。。。。。

引用url:http://www.cnblogs.com/zwl715/p/3964963.html

轉載于:https://www.cnblogs.com/itcomputer/p/5050430.html

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

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

相關文章

Android刷機

這里也有一篇比較詳細的 http://blog.csdn.net/qq1084283172/article/details/52334452 官網刷機包 https://developers.google.com/android/images#hammerhead 我的機器是Nexus 5 一. 安裝驅動 如何進入fastboot模式 1. 拔掉數據線,將手機關機 2. 關機后同時按…

中西醫與算法之間的聯系

中西醫的特點網上有非常多討論,概括起來就是西醫治病,中醫不治病 這個觀點有部分道理,但不全對 中醫落后的原因有非常多,但假設能用計算機的算法改進一下應該有非常大提升 比方翻譯,比方路線規劃,比方信號識…

程序的版式

版式雖然不會影響程序的功能,但會影響可讀性。程序的版式追求清晰、美觀,是程序風格的重要構成因素。可以把程序的版式比喻為“書法”。好的“書法”可讓人對程序一目了然,看得興致勃勃。差的程序“書法”如螃蟹爬行,讓人看得索然…

java算法---五家共井

古代數學巨著《九章算數》中有這么一道題叫“五家共井,甲二綆(汲水用的井繩)不足,如(接上)乙一綆;乙三綆不足,如丙一綆; 丙四綆不足,如丁一綆;丁五…

看雪逆向學習導航

---------------------------------------------------------------------------- 工具教程: OllyDbg IDA Windbg GDB 基本方法 參考資料 逆向原理 ----------------------------------------------------------------------------

viewController的生命周期

一、結構 按結構可以對iOS的所有ViewController分成兩類: 1、主要用于展示內容的ViewController,這種ViewController主要用于為用戶展示內容,并與用戶交互,如UITableViewController,UIViewController。 2、用于控制和顯…

android123 zhihuibeijing 新聞中心-新聞 頁簽 ViewPagerIndicator實現

## ViewPagerIndicator ## 使用導入ViewPagerIndicator庫的方式相當于可以改源碼,打包編譯Eclips可以自動完成。ViewPager指針項目,在使用ViewPager的時候能夠指示ViewPager所在的位置,就像Google Play中切換的效果一樣,還能使用…

java 獲取隨機數字的三種方法

1 //方法1 (數據類型)2 //(最小值Math.random()*(最大值-最小值1))3 // 例:4 (int)(1Math.random()*(10-11)) //從1到10的int型隨數5 6 方法2 獲得隨機數7 for (int i0;i<30;i)8 {9 System.out.println((int)(1Math.random()*10)); 10 } 11 (int)(1Math.random()*10) 1…

LVS原理及實踐(NAT模式)

LVS無論NAT及DR模式&#xff0c;均要求LVS server和real server在同一個網段內&#xff0c;NAT需要把lvs server當作各個realserver的默認網關&#xff0c;DR模式采用修改mac地址直接從數據鏈路層轉發、要求必須在同一個物理網段內 LVS-NAT的實驗網絡拓撲&#xff1a; 采用青…

基于Maven的spring_security入門

配置文件的修改點沒什么變化&#xff0c;可以參考&#xff1a;http://blog.csdn.net/ouitiken/article/details/8830505 pom.xml的依賴參考&#xff1a; <dependencies><!-- Commons --><dependency><groupId>commons-dbcp</groupId><artifac…

使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優酷視頻)

前言 為了保證每周一篇的進度&#xff0c;又由于Vitamio新版本沒有發布&#xff0c; 決定推遲本地播放的一些功能&#xff08;截圖、視頻時間、尺寸等&#xff09;&#xff0c;跳過直接寫在線播放部分的章節。從Vitamio的介紹可以看得出&#xff0c;其支持http、m3u8等多種網絡…

20個新鮮出爐的網站模板【HTML PSD】

這里給大家分享20 個新鮮出爐的免費網站模板。這些設計元素將成為你下一個項目的重要素材&#xff0c;可以幫你節省很多的時間。與往常一樣&#xff0c;我們經常漫游網絡&#xff0c;尋找最好的資源&#xff0c; HTML、CSS 和 PSD 等等&#xff0c;記得關注啊。 您可能感興趣的…

位運算總結(百科)

位運算 程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算就是直接對整數在內存中的二進制位進行操作。 位運算 - 定義 在很多系統程序中常要求在位(bit)一級進行運算或處理。&#xff23;語言提供了位運算的功能&#xff0c; 這使得&#xff23;語言也能像匯編語…

歸檔(轉)

如果是自定義類型的歸檔和解檔&#xff0c;是按以下步驟實現如果不是自定義類型&#xff0c;直接第四步就可以。一、創建一個類User二、在User.h中遵循NSCoding協議 #import <Foundation/Foundation.h> interface User : NSObject<NSCoding> { int _userAge;//例子…

相遇

CPU直接識別的唯一語言是機器語言,為了克服機器語言的缺點,便將機器指令用便于記憶、并能描述指令功能的符號來表示稱為指令助記符簡稱助記符 匯編語言由匯編指令,偽指令,和其它符號組成 匯編指令:機器碼的助記符,有對應的機器碼 偽指令:沒有對應的機器碼由編譯器執行 其它符號…

相識

編譯器&#xff1a;MASM 調試程序&#xff1a;DEBUG 編輯器&#xff1a;EditPlus

MySQL show命令的用法

show tables或show tables from database_name; // 顯示當前數據庫中所有表的名稱show databases; // 顯示mysql中所有數據庫的名稱show columns from table_name from database_name; 或show columns from database_name.table_name; // 顯示表中列名稱show grants for user_n…

怎么用代碼制作WordPress的歸檔頁面

先看看效果&#xff0c;這個是我網站的歸檔頁面&#xff1a;http://www.shenjieblog.com/archives 其實WordPress自帶了一個歸檔的功能&#xff0c;但是只能顯示在網頁中的某一個部分&#xff0c;但是我想單獨制作一個歸檔頁面&#xff0c;因為看見很多網站都有這個&#xff0c…

【web必知必會】—— 使用DOM完成屬性填充

本文介紹了使用DOM的簡單方法實現動態加載圖片的功能。 前文介紹了&#xff1a; 1 DOM四個常用的方法 首先看一下效果&#xff0c;初始時是一個相冊&#xff0c;可以點擊導航&#xff0c;切換圖片&#xff0c;并切換下方顯示內容&#xff1a; 點擊house&#xff0c;可以動態的切…