Linux作業系統中記憶體buffer和cache的區別

2022-03-26 08:34:17 字數 3819 閱讀 1843

1樓:大大蟲

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中看到的buffer和cache:(它們都是佔用記憶體):

buffer: 作為buffer cache的記憶體 ,是塊 裝置的讀寫緩衝區

cache: 作為page cache的記憶體, 檔案系統的cache

如果cache 的值很大,說明cache住的檔案數很多。如果頻繁訪問到的檔案都能被cache住,那麼磁碟的讀io bi會非常小。

buffer和cache的區別

快取(cached)是把讀取過的資料 儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。

緩衝(buffers)是根據磁碟的讀寫 設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。

2樓:燼

buffers是用來緩衝塊裝置做的,它只記錄檔案系統的後設資料(metadata)以及 tracking in-flight pages,而cached是用來給檔案做緩衝。更通俗一點說:buffers主要用來存放目錄裡面有什麼內容,檔案的屬性以及許可權等等。

而cached直接用來記憶我們開啟過的檔案和程式。

linux記憶體buffer和cache的區別

3樓:匿名使用者

兩者都是ram中的資料。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。快取(cached)是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。

其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。快取(cache)實際並不是緩衝檔案的,而是緩衝塊的,塊是磁碟i/o操作的最小單元(在linux中,它們通常是1kb)。這樣,目錄、超級塊、其它檔案系統的薄記資料以及非檔案系統的磁碟資料都可以被緩衝了。

如果快取有固定的大小,那麼快取太大了也不好,因為這會使得空閒的記憶體太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際記憶體,linux自動地使用所有空閒的記憶體作為高速緩衝,當程式需要的記憶體時,它也會自動地減小緩衝的大小。緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。

linux有一個守護程序定期清空緩衝內容(即寫磁碟),也可以通過sync命令手動清空緩衝。舉個例子吧:我這裡有一個ext2的u盤,我往裡面cp一個3m的***,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。

解除安裝裝置時會清空緩衝,所以有些時候解除安裝一個裝置時要等上幾秒鐘。buffer是由各種程序分配的,由程序和系統一起管理.被用在如輸入佇列等方面,一個簡單的例子如某個程序要求有多個欄位讀入,在所有欄位被讀入完整之前,程序把先前讀入的欄位放在buffer中儲存。

cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統效能。綜上所述可以理解為cache系統管理,buffer由程序和系統一起管理.

linux作業系統中記憶體buffer和cache的區別 amp;amp;free 引數說明

4樓:大大蟲

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中的buffer和cache:(它們都是佔用記憶體):

buffer: 作為buffer cache的記憶體 ,是塊 裝置的讀寫緩衝區

cache: 作為page cache的記憶體, 檔案系統的cache

如果cache 的值很大,說明cache住的檔案數很多。如果頻繁訪問到的檔案都能被cache住,那麼磁碟的讀io bi會非常小。

buffer和cache的區別

快取(cached)是把讀取過的資料 儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。

緩衝(buffers)是根據磁碟的讀寫 設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。

linux中,buffer記憶體與cache記憶體有何區別?

5樓:匿名使用者

兩者都是ram中的資料。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。

快取(cached)是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。

快取(cache)實際並不是緩衝檔案的,而是緩衝塊的,塊是磁碟i/o操作的最小單元(在linux中,它們通常是1kb)。這樣,目錄、超級塊、其它檔案系統的薄記資料以及非檔案系統的磁碟資料都可以被緩衝了。

如果快取有固定的大小,那麼快取太大了也不好,因為這會使得空閒的記憶體太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際記憶體,linux自動地使用所有空閒的記憶體作為高速緩衝,當程式需要更多的記憶體時,它也會自動地減小緩衝的大小。

緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。linux有一個守護程序定期清空緩衝內容(即寫磁碟),也可以通過sync命令手動清空緩衝。舉個例子吧:

我這裡有一個ext2的u盤,我往裡面cp一個3m的 ***,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。解除安裝裝置時會清空緩衝,所以有些時候解除安裝一個裝置時要等上幾秒鐘。

buffer是由各種程序分配的,由程序和系統一起管理.被用在如輸入佇列等方面,一個簡單的例子如某個程序要求有多個欄位讀入,在所有欄位被讀入完整之前,程序把先前讀入的欄位放在buffer中儲存。

cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統效能。

綜上所述可以理解為cache系統管理, buffer由程序和系統一起管理.

6樓:匿名使用者

這種形式比老版本中利用fieldcache來實現正排查詢更加高效,更加節省記憶體。倒排索引將欄位記憶體切分成一個term列表,每個term都對應著一個docid列表,這樣一種結構使得查詢能夠非常快速,因為term對應的docid是現成就有的。但是,利用它來做統計,排序,高亮操作的時候需要通過docid來找到,field的值卻變得不那麼高效了。

之前lucene4.0之前會利用fieldcache在例項啟動的時候預先將倒排索引的值load到記憶體中,問題是,如果文件多會導致預載入耗費大量時間,還會佔用寶貴的記憶體資源。

索引在lucene4.0之後引入了新的機制docvalues,可以將這個理解為正排索引,是面向列儲存的

linux中記憶體buffer和cache的區別

7樓:匿名使用者

Linux作業系統怎麼樣,linux作業系統怎麼樣

linux一般安裝在伺服器上,如果想做網管等,可以安裝來玩玩,它有桌面版和server版,有很多命令。server版都是用命令的。同意樓上的回答,linux適合伺服器,一般個人pc不建議使用。主要還是看個人需求了,個人覺得現在的linux已經很好用了,無論是伺服器還是桌面系統都很不錯了。linux作...

linux作業系統和windows作業系統的區別

windows比linux的安全性高,linux的漏洞多。windows有較完善的幫助系統,而大多數linux使用者依靠技術社群來進行技術支援。linux無論是公用還是個人使用都是免費的,windows是隻有個人使用是免費的。linux作業系統是基於unix作業系統發展而來的一種克隆系統,它誕生於19...

雙作業系統(Linux和windows xp

想再裝一個linux的作業系統,不知道可不可以?可以。如果可以怎麼裝呢?暫時拋開windows知識,重新認識計算機,從頭開始。怎麼弄雙作業系統呢?同上。需要詳細步驟 同上。裝了兩個作業系統對電腦會不會產生太大的負擔呢?要看你是否同時 運 行 兩個作業系統。可以的。至於負擔,就是你的硬碟空間會被lin...