婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > linux page buffer cache深入理解

linux page buffer cache深入理解

熱門(mén)標(biāo)簽:南寧智能外呼系統(tǒng)線路商 成都移動(dòng)外呼系統(tǒng) 佛山外呼系統(tǒng)平臺(tái) 電銷(xiāo)機(jī)器人的效果 美圖手機(jī) 聯(lián)客智能語(yǔ)音外呼系統(tǒng)賬號(hào)格式 長(zhǎng)春外呼系統(tǒng)價(jià)格 南昌語(yǔ)音外呼系統(tǒng)代理 長(zhǎng)沙智能外呼系統(tǒng)中心
Page cache和buffer cache一直以來(lái)是兩個(gè)比較容易混淆的概念,在網(wǎng)上也有很多人在爭(zhēng)辯和猜想這兩個(gè)cache到底有什么區(qū)別,討論到最后也一直沒(méi)有一個(gè)統(tǒng)一和正確的結(jié)論,在我工作的這一段時(shí)間,page cache和buffer cache的概念曾經(jīng)困擾過(guò)我,但是仔細(xì)分析一下,這兩個(gè)概念實(shí)際上非常的清晰。如果能夠了解到這兩個(gè)cache的本質(zhì),那么我們?cè)诜治鰅o問(wèn)題的時(shí)候可能會(huì)更加得心應(yīng)手。
Page cache實(shí)際上是針對(duì)文件系統(tǒng)的,是文件的緩存,在文件層面上的數(shù)據(jù)會(huì)緩存到page cache。文件的邏輯層需要映射到實(shí)際的物理磁盤(pán),這種映射關(guān)系由文件系統(tǒng)來(lái)完成。當(dāng)page cache的數(shù)據(jù)需要刷新時(shí),page cache中的數(shù)據(jù)交給buffer cache,但是這種處理在2.6版本的內(nèi)核之后就變的很簡(jiǎn)單了,沒(méi)有真正意義上的cache操作。

Buffer cache是針對(duì)磁盤(pán)塊的緩存,也就是在沒(méi)有文件系統(tǒng)的情況下,直接對(duì)磁盤(pán)進(jìn)行操作的數(shù)據(jù)會(huì)緩存到buffer cache中,例如,文件系統(tǒng)的元數(shù)據(jù)都會(huì)緩存到buffer cache中。
簡(jiǎn)單說(shuō)來(lái),page cache用來(lái)緩存文件數(shù)據(jù),buffer cache用來(lái)緩存磁盤(pán)數(shù)據(jù)。在有文件系統(tǒng)的情況下,對(duì)文件操作,那么數(shù)據(jù)會(huì)緩存到page cache,如果直接采用dd等工具對(duì)磁盤(pán)進(jìn)行讀寫(xiě),那么數(shù)據(jù)會(huì)緩存到buffer cache。

補(bǔ)充一點(diǎn),在文件系統(tǒng)層每個(gè)設(shè)備都會(huì)分配一個(gè)def_blk_ops的文件操作方法,這是設(shè)備的操作方法,在每個(gè)設(shè)備的inode下面會(huì)存在一個(gè)radix tree,這個(gè)radix tree下面將會(huì)放置緩存數(shù)據(jù)的page頁(yè)。這個(gè)page的數(shù)量將會(huì)在top程序的buffer一欄中顯示。如果設(shè)備做了文件系統(tǒng),那么會(huì)生成一個(gè)inode,這個(gè)inode會(huì)分配ext3_ops之類(lèi)的操作方法,這些方法是文件系統(tǒng)的方法,在這個(gè)inode下面同樣存在一個(gè)radix tree,這里會(huì)緩存文件的page頁(yè),緩存頁(yè)的數(shù)量在top程序的cache一欄進(jìn)行統(tǒng)計(jì)。從上面的分析可以看出,2.6內(nèi)核中的buffer cache和page cache在處理上是保持一致的,但是存在概念上的差別,page cache針對(duì)文件的cache,buffer是針對(duì)磁盤(pán)塊數(shù)據(jù)的cache,僅此而已。

buffer 與cache 的區(qū)別
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.
更詳細(xì)的解釋參考:Difference Between Buffer and Cache
對(duì)于共享內(nèi)存(Shared memory),主要用于在UNIX 環(huán)境下不同進(jìn)程之間共享數(shù)據(jù),是進(jìn)程間通信的一種方法,一般的應(yīng)用程序不會(huì)申請(qǐng)使用共享內(nèi)存,筆者也沒(méi)有去驗(yàn)證共享內(nèi)存對(duì)上面等式的影響。如果你有興趣,請(qǐng)參考:What is Shared Memory?

cache 和 buffer的區(qū)別:
Cache:高速緩存,是位于CPU與主內(nèi)存間的一種容量較小但速度很高的存儲(chǔ)器。由于CPU的速度遠(yuǎn)高于主內(nèi)存,CPU直接從內(nèi)存中存取數(shù)據(jù)要等待一定時(shí)間周期,Cache中保存著CPU剛用過(guò)或循環(huán)使用的一部分?jǐn)?shù)據(jù),當(dāng)CPU再次使用該部分?jǐn)?shù)據(jù)時(shí)可從Cache中直接調(diào)用,這樣就減少了CPU的等待時(shí)間,提高了系統(tǒng)的效率。Cache又分為一級(jí)Cache(L1 Cache)和二級(jí)Cache(L2 Cache),L1 Cache集成在CPU內(nèi)部,L2 Cache早期一般是焊在主板上,現(xiàn)在也都集成在CPU內(nèi)部,常見(jiàn)的容量有256KB或512KB L2 Cache.
Buffer:緩沖區(qū),一個(gè)用于存儲(chǔ)速度不同步的設(shè)備或優(yōu)先級(jí)不同的設(shè)備之間傳輸數(shù)據(jù)的區(qū)域。通過(guò)緩沖區(qū),可以使進(jìn)程之間的相互等待變少,從而使從速度慢的設(shè)備讀入數(shù)據(jù)時(shí),速度快的設(shè)備的操作進(jìn)程不發(fā)生間斷。

Free中的buffer和cache:(它們都是占用內(nèi)存):
buffer :作為buffer cache的內(nèi)存,是塊設(shè)備的讀寫(xiě)緩沖區(qū)
cache:作為page cache的內(nèi)存, 文件系統(tǒng)的cache
如果 cache 的值很大,說(shuō)明cache住的文件數(shù)很多。如果頻繁訪問(wèn)到的文件都能被cache住,那么磁盤(pán)的讀IO 必會(huì)非常小。

標(biāo)簽:新鄉(xiāng) 慶陽(yáng) 法律服務(wù) 阜陽(yáng) 沈陽(yáng) 東營(yíng) 云浮 邵陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux page buffer cache深入理解》,本文關(guān)鍵詞  linux,page,buffer,cache,深入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux page buffer cache深入理解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于linux page buffer cache深入理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 故城县| 兰州市| 翁牛特旗| 达州市| 曲松县| 古交市| 偏关县| 溧阳市| 衡阳县| 新余市| 金山区| 曲阜市| 咸宁市| 青铜峡市| 太原市| 阳谷县| 宁国市| 清远市| 北宁市| 无为县| 五华县| 蕉岭县| 兴文县| 大理市| 鄂温| 江源县| 昌图县| 萨迦县| 德化县| 政和县| 呼伦贝尔市| 龙州县| 北海市| 赣榆县| 阿瓦提县| 葵青区| 葫芦岛市| 和龙市| 金川县| 清远市| 平阳县|