成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 內(nèi)存中的緩沖區(qū)(Buffer)與緩存(Cache)

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

Buffer 和 Cache 的定義:

  • 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ì) Buffer 和 Cache 有了很好的理解。但如果你不能,請(qǐng)留下來(lái)看看我的進(jìn)一步解釋。

free 命令

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

$ free -h
total used free shared buff/cache available
Mem: 1.9G 1.0G 394M 2.6M 491M 728M
Swap: 0B 0B 0B

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

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


buffers
Memory used by kernel buffers (Buffers in /proc/meminfo)
cache Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)
buff/cache
Sum of buffers and cache

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

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

Buffers %lu
Relatively temporary storage for raw disk blocks that shouldn't get tremendously large (20MB or so).
Cached %lu
In-memory cache for files read from the disk (the page cache). Doesn't include SwapCached.
...
SReclaimable %lu (since Linux 2.6.19)
Part of Slab, that might be reclaimed, such as caches.
SUnreclaim %lu (since Linux 2.6.19)
Part of Slab, that cannot be reclaimed on memory pressure.

至此,您可能認(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,讓我們先清理緩存:

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

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

  • buff 和 cache 就是我們前面看到的 Buffer 和 Cache,單位是 KB。
  • bi 和 bo 分別表示塊設(shè)備讀取和寫入的大小,以塊/s 為單位。由于 Linux 中的塊大小為 1KB,因此這個(gè)單位相當(dāng)于 KB/s。

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

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

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

讀取 Buffer

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

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

您可以看到此時(shí) buff 為 0。現(xiàn)在在終端 2 中,運(yùn)行以下命令:

然后,回到終端 1 觀察:

觀察 vmstat 的輸出,你會(huì)發(fā)現(xiàn)在讀盤的時(shí)候(也就是 bi > 0 的時(shí)候),Buffer 和 Cache 都在增長(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ì) Buffer 和 Cache 進(jìn)行了描述,但仍然無(wú)法涵蓋所有細(xì)節(jié)。我們?nèi)缃駥W(xué)到了以下兩點(diǎn):

  • Buffer:既可以用作“要寫入磁盤的數(shù)據(jù)緩存”,也可以用作“讀取磁盤讀的數(shù)據(jù)緩存”。
  • Cache:既可以用作“從讀取文件的頁(yè)面緩存”,也可以用作“寫入文件的頁(yè)面緩存”。
責(zé)任編輯:龐桂玉 來(lái)源: 馬哥Linux運(yùn)維
相關(guān)推薦

2018-08-03 09:07:40

Linux內(nèi)存buffercache

2017-08-22 14:26:39

Linuxbuffercache

2020-12-23 13:14:00

LinuxLinux內(nèi)存Swap

2021-03-30 10:50:18

Linux內(nèi)存命令

2011-12-14 16:30:42

javanio

2017-01-09 17:03:34

2019-02-27 13:58:29

漏洞緩沖區(qū)溢出系統(tǒng)安全

2009-09-24 18:16:40

2025-05-26 04:00:20

2022-05-07 08:27:42

緩沖區(qū)溢出堆棧

2017-07-04 17:09:10

Map環(huán)形緩沖區(qū)數(shù)據(jù)

2014-07-30 11:21:46

2018-01-26 14:52:43

2009-11-16 17:26:17

Oracle優(yōu)化緩沖區(qū)

2009-11-16 17:08:59

Oracle日志緩沖區(qū)

2011-07-20 10:54:14

C++

2010-12-27 10:21:21

2019-12-10 09:53:27

LinuxCacheBuffer

2012-09-27 09:25:50

2019-01-11 09:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 蜜桃视频一区二区三区 | 国产高清精品一区二区三区 | 国产精品夜夜春夜夜爽久久电影 | 成人免费视频观看视频 | 超黄毛片| 亚洲国产精品99久久久久久久久 | 黄色免费av | 91 久久 | 免费在线视频一区二区 | 91精品国产综合久久福利软件 | 日本在线网站 | 日本在线网站 | 亚洲精品乱码久久久久久9色 | 女人一区 | 国产精品久久久久久久久久免费 | 国产午夜精品一区二区三区嫩草 | 国产精品亚洲成在人线 | 999免费网站 | 欧美亚洲国产日韩 | 日韩一区二区三区视频 | 中文字幕国产一区 | 国产激情一区二区三区 | 日韩亚洲视频 | 国产精品久久久久久亚洲调教 | 色.com| 九九综合| 亚洲成人精品久久久 | 伊人狠狠干 | 亚洲综合在线视频 | 亚洲成人精品一区 | 久久人体 | 午夜视频免费在线 | 美女一区二区在线观看 | 国产主播第一页 | 日韩三级 | 欧美高清性xxxxhd | 亚洲精品日韩一区二区电影 | www.蜜桃av | 在线视频a | 欧美精品一区二区在线观看 | 九九伊人sl水蜜桃色推荐 |