1. 程式人生 > >Linux中記憶體buffer和cache的區別

Linux中記憶體buffer和cache的區別

cache是快取記憶體,用於CPU和記憶體之間的緩衝;
buffer是I/O快取,用於記憶體和硬碟的緩衝

cache最初用於cpu cache, 主要原因是cpu 與memory, 由於cpu快,memory跟不上,且有些值使用次數多,所以放入
cache中,主要目的是,重複使用, 並且一級\二級物理cache速度快,
buffer 主要用於disk 與 memory, 主要是保護硬碟或減少網路傳輸的次數(記憶體資料表現dataSet).當然也可以提高速度(不會立即寫入硬碟或直接從硬碟中讀出的資料馬上顯示),重複使用,最初最主要的目的是保護disk,
asp.net的cache有outputcahe與資料cache, 主要目的是 重複使用,提高速度,outputcache主要儲存Reader後的頁,一般是多次使用同一個HTML,建議不要varybyparam,不要存多version,
資料cache,如dataSet, dataTable, 等
@page buffer="true", 使用buffer,讓buffer滿後再顯示讀出或寫入,(c中檔案輸出也是如此,主要目的是保護硬碟), 也可以提高下次的訪問速度.   在client browse端表現是: true是一次性顯示,要麼不顯示, 中間等, false是一次顯示一些, 
這在網路輸出也是如此表現.
對於檔案訪問c中預設採用的是buffer = true, 這與asp.net一樣, 
相當於Response.write();中當buffer滿後輸出,以減少網路的傳輸次數
<%@ OutputCache Duration="60" VaryByParam="none"%>, 是將asp.net生成的HTML快取起來,在指定的時間內不需要重新生成html, control.ascx.也有元件快取(htmlCach)。 dataSet也是如此。DataCache,
cache和buffer都是緩衝區, 在翻譯上,cache翻譯成高速緩衝區要好一點(因為主要是為下次訪問加速), buffer翻譯成緩衝區好點。都是緩衝的作用,可目的有點不同,主要是理解,不需要太咬文嚼字.

cache 和 buffer的區別
1, Buffer是緩衝區
2, Cache 是快取記憶體,分library cache; data dictionary cache; database buffer cache
Buffer cache 緩衝區快取記憶體,用於快取從硬碟上讀取的資料,減少磁碟I/O.
3, buffer有共享SQL區和PL/SQL區 , 資料庫緩衝區快取記憶體有獨立的subcache
4, pool   是共享池 用於儲存最近執行的語句等
5, cache:
A cache is a smaller, higher-speed component that is used to speed up the
access to commonly used data stored in a lower-speed, higher-capacity
component.             
database buffer cache:
The database buffer cache is the portion of the SGA that holds copies of data
blocks
read from data files. All user processes concurrently (同時地,兼任地)connected
to the instance share access to the database buffer cache.
buffer cache就是以block為單位讀入寫出的。

快取(cache)是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。
緩衝(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以方便下次被訪問,這樣可提供系統性能。
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.
 

相關推薦

Linux 記憶體 buffer cache區別

細心的朋友會注意到,當你在Linux下頻繁存取檔案後,實體記憶體會很快被用光,當程式結束後,記憶體不會被正常釋放,而是一直作為caching.這個問題,貌似有不少人在問,不過都沒有看到有什麼很好解決的辦法.那麼我來談談這個問題。 先來說說free命令 其中: total

Linux記憶體buffercache區別

cache是快取記憶體,用於CPU和記憶體之間的緩衝; buffer是I/O快取,用於記憶體和硬碟的緩衝 cache最初用於cpu cache, 主要原因是cpu 與memory, 由於cpu快,memory跟不上,且有些值使用次數多,所以放入 cache中,主要目的是,重複使用, 並且一級\二級物理cach

linuxbuffercache區別

做成 內存 緩沖 交換 簡單 text 操作 進程 linux系統中 ***今天我們再來簡單討論下linux系統中關於Buffer和Cache的區別,buffer與cache操作的對象就不一樣、``` 1.buffer(緩沖區) 是為了提高內存的硬盤(或其他i/o設備)

Linux記憶體 BufferCache區別Linux檢視記憶體的命令free

一. Linux中檢視記憶體的命令free (1) free檢視的內在預設是以kb為單位,如果想以MB為單位檢視用命令 free -m     二.Linux記憶體 Buffer和Cache的區別 A buffer is something that has ye

如何理解記憶體buffercache

一:   free資料的來源: man free buffers              Memory used by kernel buffers (Buff

Linux性能優化實戰:怎麽理解內存BufferCache?(16)

inux tro parsing 內核 echo buffers block sed 性能優化 一、free數據的來源 1、碰到看不明白的指標時該怎麽辦嗎? 不懂就去查手冊。用 man 命令查詢 free 的文檔、就可以找到對應指標的詳細說明。比如,我們執行 man f

效能測試必備知識(11)- 怎麼理解記憶體BufferCache

做效能測試的必備知識系列,可以看下面連結的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html   快取 從 free 命令可以看到,快取其實就是 Buffer 和 Cache 兩部分的總和 字面意思,Buffer 是快取區,Cache

LinuxBufferCache區別

2. Buffer:緩衝區,用於儲存速度不同步的裝置或優先順序不同的裝置之間傳輸資料;通過buffer可以減少程序間通訊需要等待的時間,當儲存速度快的裝置與儲存速度慢的裝置進行通訊時,儲存慢的資料先把資料存放到buffer,達到一定程度儲存快的裝置再讀取buffer的資料,在此期間儲存快的裝置CPU可以幹其他

buffercache區別

buffer cache 1 cache 緩存區高速緩存,是位cpu和主內存之間容量較小但是速度很快的存儲器,因為cpu的速度遠遠高於主內存的速度,cpu從內存中讀取數據需要等待很長一段時間,cache中保存著cpu剛用過的數據或者是循環使用的數據,這時,從cache中讀取數據就會很快,減少了cpu等待

linuxdu與df的區別聯系

roc 換行 -h lib 文件占用 use .html -m 詳細 1,兩者區別 du,disk usage,是通過搜索文件來計算每個文件的大小然後累加,du能看到的文件只是一些當前存在 的,沒有被刪除的。他計算的大小就是當前他認為存在的所有文件大小的累加和。 df

學習筆記---buffercache區別

cache一.概念buffer:緩沖區,一個用於存儲速度不同步的設備或優先級不同的設備之間傳輸數據的區域。cache: 緩存,位於CPU與主內存間的一種容量較小但速度很高的存儲器。保存著CPU剛用過或循環使用的一部分數據。二、應用場景buffer:由各種進程分配,被用在輸入隊列等方面。cache: 用在磁盤的

linuxfork, sourceexec的區別

after 如果 direct roo 子進程 獨立 程序 也會 exp 轉:linux中fork, source和exec的區別 shell的命令可以分為內部命令和外部命令. 內部命令是由特殊的文件格式.def實現的,如cd,ls等.而外部命令是通過系統調用或獨立程序

簡單說明buffercache區別

buffer cache 1、什麽是buffer buffer(即緩沖區),簡單的說就是將寫入磁盤的IO先寫入到內存中,當達到了一定的時間或者是一定的大小的時候,再一次性地寫入到磁盤中,這是一個取的過程!數據流向:CPU ==》內存==》磁盤 2、什麽是cache cache(緩存區),簡單的說就是為

運維職責,buffercache什麽區別?機房防止服務器斷電,遠程控制卡

電源 小時 網站 蓄電池 管理 重啟 遠程控制 遠程 進行 1.運維職責·數據不能丟·網站7*24小時運行·用戶體驗要好2.buffer和cache什麽區別?buffeer 緩沖區 數據寫入到內存的buffer區域 寫buffer‘ 寫緩沖cache

linux軟連結硬連結的區別與小結

首先我們需要了解linux下硬連結以及軟連線的基本概念. 硬連結:新建的檔案是已經存在的檔案的一個別名,當原檔案刪除時,新建的檔案仍然可以使用. 軟連結:也稱為符號連結,新建的檔案以“路徑”的形式來表示另一個檔案,和Windows的快捷方式十分相似,新建的軟連結可以指向不存在的檔案. 下

Linux硬連結軟連線的區別以及建立

硬連結:已存在的檔案的一個別名,當原始檔刪除時仍可使用,且inode可共享,僅檔名不同的檔案,硬連結的建立會使連結數加1。 軟連線:符號連結,也就是快捷方式,不共享inode,有自己的inode,可對不存在的檔案建立軟連結,建立時連結數不加一,當原始檔刪除時,則

linuxdu與df的區別聯絡

1,兩者區別  du,disk usage,是通過搜尋檔案來計算每個檔案的大小,然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是,當前他認為存在的所有檔案大小的累加和。 df,disk free,通過檔案系統來快速獲取空間大小的資訊。當我們刪除

Linux工具效能調優系列二:buffercache

一,案例入門 我們來看一個例子,我們來看free輸出,free採集資料來源是:/proc/meminfo檔案,對於這個檔案,會貫穿這個系列。 [email protected]:~# free total used free sh

Linuxselect pollepoll的區別

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                select的本質是採用32個整數的32位,即32*32= 1024來標識,fd值為1-1024。當fd的值超過1024限制時,就必須修改FD_SETSIZE的

看過這兩張圖,就明白 Buffer Cache 之間區別

【伯樂線上轉註】:本文源自「沈萬馬」對《Cache 和 Buffer 都是快取,主要區別是什麼?》的回答分享,伯樂線上已獲轉載授權。 Buffer常見的是這個: 對,就是鐵道端頭那個巨大的彈簧一類的東西。作用是萬一車沒停住,撞彈簧上減速慢,危險小一些。叫緩衝。 C