日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Buffer和Cache的定義

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-05-13 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

BufferCache 的定義:

  • Buffer:是原始磁盤塊的臨時(shí)存儲(chǔ),即將緩存數(shù)據(jù)寫入磁盤。它通常不會(huì)很大(大約 20MB)。這樣,內(nèi)核就可以將分散的寫入集中起來(lái),從而對(duì)磁盤寫入進(jìn)行統(tǒng)一優(yōu)化。例如,多個(gè)小的寫入可以合并為一個(gè)大的寫入等。

  • Cache:是用于從磁盤讀取文件的頁(yè)面緩存,用于緩存從文件中讀取的數(shù)據(jù)。這樣,下次訪問這些文件數(shù)據(jù)時(shí),可以直接從內(nèi)存中快速取回,而無(wú)需再次訪問緩慢的磁盤。

但是讓我問你,由于 Buffer 只是將寫入磁盤的數(shù)據(jù)的緩存。反過來(lái),它還會(huì)緩存從磁盤讀取的數(shù)據(jù)嗎?或者 Cache 是從文件中讀取數(shù)據(jù)的緩存,那么它是否也為寫入文件緩存數(shù)據(jù)呢?

如果你能回答以上兩個(gè)問題,你可以跳過這篇文章,我想你已經(jīng)對(duì) BufferCache 有了很好的理解。但如果你不能,請(qǐng)留下來(lái)看看我的進(jìn)一步解釋。

free 命令

要檢查系統(tǒng)內(nèi)存使用情況,您想到的第一個(gè)命令可能是 free ,例如:

$free-h
totalusedfreesharedbuff/cacheavailable
Mem:1.9G1.0G394M2.6M491M728M
Swap:0B0B0B

很明顯,該輸出包括了物理內(nèi)存 MemSwap 的具體使用情況(如總內(nèi)存、已用內(nèi)存、緩存、可用內(nèi)存等)。緩存是 BufferCache 兩部分的總和。

讓我們看一下 free 的手冊(cè)頁(yè)中的 BufferCache 定義:

buffers
Memoryusedbykernelbuffers(Buffersin/proc/meminfo)
cacheMemoryusedbythepagecacheandslabs(CachedandSReclaimablein/proc/meminfo)
buff/cache
Sumofbuffersandcache

我們可以看到 free 命令的源數(shù)據(jù)實(shí)際上存儲(chǔ)在 proc/meminfo 文件中。正如我前面提到的,/procLinux 內(nèi)核提供的一個(gè)特殊的文件系統(tǒng),它就像一個(gè)用戶與內(nèi)核交互的接口。

/proc 文件系統(tǒng)也是許多性能工具的最終數(shù)據(jù)源。在 man proc 中,BuffersCached 的定義如下:

Buffers%lu
Relativelytemporarystorageforrawdiskblocksthatshouldn'tgettremendouslylarge(20MBorso).
Cached%lu
In-memorycacheforfilesreadfromthedisk(thepagecache).Doesn'tincludeSwapCached.
...
SReclaimable%lu(sinceLinux2.6.19)
PartofSlab,thatmightbereclaimed,suchascaches.

SUnreclaim%lu(sinceLinux2.6.19)
PartofSlab,thatcannotbereclaimedonmemorypressure.

至此,您可能認(rèn)為您已經(jīng)找到了我的問題的答案,“Buffer”只是用于將數(shù)據(jù)寫入磁盤的緩存,“Cache”只是用于從文件中讀取數(shù)據(jù)的緩存。但事實(shí)上,“Buffer”也可以用于讀取,“Cache”也可以用于寫入。

實(shí)驗(yàn)

我們將在這里做兩個(gè)實(shí)驗(yàn),寫緩存和讀緩存。

寫入 Cache

讓我們登錄到我們的 Linux 主機(jī)并準(zhǔn)備好兩個(gè)終端。在終端 1,讓我們先清理緩存

c2f2f4ae-d25e-11ec-bce3-dac502259ad0.png

這里 /proc/sys/vm/drop_caches 是一個(gè)通過 proc 文件系統(tǒng)修改內(nèi)核行為的例子。寫入 3 意味著清理各種緩存,例如文件頁(yè)、目錄條目和 Inode。

仍然在終端 1,讓我們開啟 vmstat 2 命令:

c3058236-d25e-11ec-bce3-dac502259ad0.png
  • buffcache 就是我們前面看到的 BufferCache,單位是 KB。
  • bibo 分別表示塊設(shè)備讀取和寫入的大小,以塊/s 為單位。由于 Linux 中的塊大小為 1KB,因此這個(gè)單位相當(dāng)于 KB/s。

接下來(lái),轉(zhuǎn)移到終端 2 并運(yùn)行以下命令:

c31a58e6-d25e-11ec-bce3-dac502259ad0.png

現(xiàn)在切換回終端 1,并觀察 buffcache 的變化:

c32ecd6c-d25e-11ec-bce3-dac502259ad0.png

通過觀察 vmstat 的輸出,我們發(fā)現(xiàn)運(yùn)行 dd 命令時(shí),Cache 一直在增長(zhǎng),而 Buffer 基本沒有變化。

讀取 Buffer

現(xiàn)在,讓我們做第二個(gè)實(shí)驗(yàn)。再次清除終端 1中的緩存

c34774d4-d25e-11ec-bce3-dac502259ad0.png

同樣在終端 1 中,再次啟動(dòng) vmstat 2 命令:

c36567fa-d25e-11ec-bce3-dac502259ad0.png

您可以看到此時(shí) buff0?,F(xiàn)在在終端 2 中,運(yùn)行以下命令:

c37f4dc8-d25e-11ec-bce3-dac502259ad0.png

然后,回到終端 1 觀察:

c3991460-d25e-11ec-bce3-dac502259ad0.png

觀察 vmstat 的輸出,你會(huì)發(fā)現(xiàn)在讀盤的時(shí)候(也就是 bi > 0 的時(shí)候),BufferCache 都在增長(zhǎng),但是顯然 Buffer 的增長(zhǎng)要快很多。這意味著當(dāng)從磁盤讀取時(shí),數(shù)據(jù)被緩存在 Buffer 中。

現(xiàn)在我們幾乎可以得出結(jié)論:

讀取文件時(shí)數(shù)據(jù)會(huì)緩存在 Cache 中,讀取磁盤時(shí)數(shù)據(jù)會(huì)緩存在 Buffer 中。

結(jié)論

在這里您應(yīng)該會(huì)發(fā)現(xiàn),雖然本文對(duì) BufferCache 進(jìn)行了描述,但仍然無(wú)法涵蓋所有細(xì)節(jié)。我們?nèi)缃駥W(xué)到了以下兩點(diǎn):

  • Buffer:既可以用作“要寫入磁盤的數(shù)據(jù)緩存”,也可以用作“讀取磁盤讀的數(shù)據(jù)緩存”。
  • Cache:既可以用作“從讀取文件的頁(yè)面緩存”,也可以用作“寫入文件的頁(yè)面緩存”。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 磁盤
    +關(guān)注

    關(guān)注

    1

    文章

    401

    瀏覽量

    26597
  • buffer
    +關(guān)注

    關(guān)注

    2

    文章

    120

    瀏覽量

    31185
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    759

    瀏覽量

    23978

原文標(biāo)題:Linux 內(nèi)存中的緩沖區(qū)(Buffer)與緩存(Cache)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    DPA2 DPSW 端口報(bào)告 dpsw_cnt_ing_no_buffer_discard:xxxx 錯(cuò)誤怎么解決?

    我們發(fā)現(xiàn)DPSW能達(dá)到的max_rate只有900Mps, 使用 Restool 我們找到 DPSW 報(bào)告 dpsw_cnt_ing_no_buffer_discard:22262XXX DPSW
    發(fā)表于 04-16 08:00

    失調(diào)電壓的定義、測(cè)量與校正辦法

    失調(diào)電壓的定義、測(cè)量與校正辦法
    的頭像 發(fā)表于 04-10 16:08 ?120次閱讀
    失調(diào)電壓的<b class='flag-5'>定義</b>、測(cè)量與校正辦法

    憶聯(lián)自研芯片以壓縮技術(shù)重塑KV Cache存儲(chǔ)效率

    2026年3月,谷歌研究院發(fā)布TurboQuant壓縮算法技術(shù),迅速在存儲(chǔ)與AI基礎(chǔ)設(shè)施領(lǐng)域引發(fā)熱議。該算法能夠壓縮KV緩存,實(shí)現(xiàn)內(nèi)存占用降低6倍、推理速度提升8倍的潛力。這一技術(shù)突破的背后,折射出大模型推理時(shí)代最核心的硬件瓶頸:KV Cache正成為制約AI部署規(guī)模的“內(nèi)存吞金獸”。
    的頭像 發(fā)表于 04-10 14:10 ?435次閱讀

    在GUI GUIDER中如何啟用eSingle Buffer

    這一問題,行業(yè)長(zhǎng)期依賴雙緩沖(Ping-pong Buffer) 或 多緩沖(Multi Buffer),用更多顯存換來(lái)更穩(wěn)定的刷新體驗(yàn)。
    的頭像 發(fā)表于 02-09 09:43 ?922次閱讀
    在GUI GUIDER中如何啟用eSingle <b class='flag-5'>Buffer</b>

    請(qǐng)問030系列集成的PreFetch 和 Cache怎么用呀?

    各位大佬,030系列集成的PreFetch 和 Cache怎么用呀?有這方面的demo或者pdf操作流程么?
    發(fā)表于 01-19 07:07

    深入解析DS25MB100:2.5 Gbps 2:1/1:2 CML Mux/Buffer的卓越性能與應(yīng)用

    深入解析DS25MB100:2.5 Gbps 2:1/1:2 CML Mux/Buffer的卓越性能與應(yīng)用 一、引言 在高速數(shù)據(jù)通信領(lǐng)域,信號(hào)的高效傳輸和處理至關(guān)重要。DS25MB100作為一款
    的頭像 發(fā)表于 12-27 14:10 ?799次閱讀

    瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南之定義傳輸源和目標(biāo)存儲(chǔ)器

    首先,要使用DMA傳輸,就肯定要有一個(gè)源地址和一個(gè)目標(biāo)地址,這里我們定義SRC_Buffer數(shù)組的首地址作為源地址,DST_Buffer數(shù)組的首地址作為DMAC傳輸?shù)哪繕?biāo)地址。SRC_Buff
    的頭像 發(fā)表于 12-15 11:09 ?4413次閱讀
    瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南之<b class='flag-5'>定義</b>傳輸源和目標(biāo)存儲(chǔ)器

    采用Prefetch+Cache架構(gòu)有什么優(yōu)勢(shì)?

    我看官方說(shuō),采用Prefetch+Cache架構(gòu)同頻CoreMark 計(jì)算力/功耗比超越同類產(chǎn)品,這優(yōu)勢(shì)就是低功耗么?要是具體芯片比較的話,應(yīng)該怎么比?
    發(fā)表于 12-11 07:35

    單片機(jī)內(nèi)部FLASH字節(jié)操作

    buff [*][i]{ [*][i]cache.u32data=FLSAH_ReadWord(pageaddr+i); [*][i]buffer[i]=cache.buf[0]; [*][i][i
    發(fā)表于 11-24 06:40

    STM32H7使用Serial V2框架配合DMA,可以修改DMA的buffer內(nèi)存位置嗎?

    因?yàn)橹鲀?nèi)存設(shè)置在了dtcm,不能被dma訪問,然而serial v2框架開啟dma,緩存使用的是動(dòng)態(tài)分配的內(nèi)存,要如何修改buffer位置呢
    發(fā)表于 10-09 07:04

    USB讀RAM buffer使用規(guī)范建議

    Questions:硬件和軟件同時(shí)去訪問 USB RAM buffer 造成數(shù)據(jù)亂掉或丟失 造成亂碼流程: 軟件設(shè)置 USB Valid 關(guān)總中斷,USB 收數(shù)據(jù)到 RAM Buffer,此時(shí)
    發(fā)表于 09-22 17:27

    gd32h737 開啟cache程序跑飛是哪里的問題?

    gd32h737 在rtthread 4.1.1版本上運(yùn)行,開啟cache功能,程序跑飛,JLink連接失敗的。錯(cuò)誤信息沒有。配置方式的說(shuō)明嗎? /*! briefenable the CPU
    發(fā)表于 09-11 08:28

    什么情況會(huì)導(dǎo)致BUFFER_RYD一直為低電平?

    ,在c++ streamer中檢測(cè)是否成接收到USB_BULK數(shù)據(jù),結(jié)果顯示4014可以接收到USB_BULK數(shù)據(jù),4024不能接收到USB_BULK數(shù)據(jù)。結(jié)果如下圖: 2、BUFFER_RDY信號(hào)
    發(fā)表于 08-14 06:21

    STM32H7的MPU配置與D-Cache沖突如何解決???

    現(xiàn)象??: STM32H743 MPU 與 D-Cache 沖突問題詳細(xì)描述** 硬件環(huán)境 MCU 型號(hào) :STM32H743VIT6 開發(fā)板 :自定義板(或 STM32H743I-EVAL 等
    發(fā)表于 06-23 17:32

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?2665次閱讀
    深泽县| 平原县| 宁夏| 咸宁市| 仪陇县| 梁平县| 定边县| 什邡市| 南澳县| 辉南县| 马尔康县| 柘城县| 敖汉旗| 潮州市| 西乡县| 成安县| 四平市| 高雄县| 鸡西市| 廊坊市| SHOW| 正镶白旗| 宜君县| 冷水江市| 叙永县| 惠安县| 安龙县| 庆阳市| 宣威市| 鹿泉市| 东乡县| 沿河| 肇州县| 宣化县| 海晏县| 平果县| 柯坪县| 海安县| 长沙市| 莫力| 南和县|