Linux中的缓冲区和缓存内存有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (358)

对我来说,还不清楚两个Linux内存概念之间的区别是什么:buffercache在我看来,它们之间的区别在:

  1. 缓冲区的策略是先进先出
  2. 缓存的策略最近使用最少。

对吗?

特别是,我正在看以下两个命令:freevmstat

james@utopia:~$ vmstat -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
5  0      0    173     67    912    0    0    19    59   75 1087 24  4 71  1
james@utopia:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2007       1834        172          0         67        914
-/+ buffers/cache:        853       1153
Swap:         2859          0       2859
提问于
用户回答回答于

“缓冲区”表示内存中有多少用于缓存磁盘块。“缓存”类似于“缓冲区”,只是这一次它从文件读取中缓存页面。

用户回答回答于

缓冲区与特定的块设备相关联,包括文件系统元数据的缓存以及页面跟踪。缓存只包含已停放的文件数据。也就是说,缓冲区记住目录中的内容、文件权限是什么,并跟踪从某个块设备中写入或读取到哪些内存。缓存只包含文件本身的内容。

扫码关注云+社区

领取腾讯云代金券