在free命令展示机器的内存消耗情况,会像这样展示

buffered 和cached本质内容有什么区别呢?

我没搞明白。我觉得需要追根溯源会更加理解本质。

英文是这样解释

A buffer is something that has yet to be "written" to disk.  这些数据准备写到磁盘的,但还没有写到磁盘,缓存在内存中。

之所以有这样的机制,因为频繁地写入磁盘,会造成磁盘i/0,所以一般数据不会马上写入到磁盘去,而是定期积累到一定量后写入磁盘去。

buffer的英文本意是缓冲器,缓冲一下,不要马上写入到磁盘,冲击磁盘。

这个buffer大小由什么设置的呢? 不知道。待补充。

A cache is something that has been "read" from the disk and stored for later use.

从磁盘上读取数据存储到内存中缓存起来,方便下一次使用。目的是避免频繁的去磁盘上读取数据,直接从内存中读取使用了。

之所以有cache,一般是对频繁使用到的数据(读的数据),进行缓存到内存。

------------------------------------------

从上面分析看,两个内存区域要解决的问题和目标都不同。一个是解决频繁读的问题。另外一个是解决频繁写入到磁盘的问题。

但相同点是:他们都是为了减少磁盘i/0次数。因为磁盘是机械性的旋转,靠磁头定位来读、写数据。频繁读、写磁盘,就会造成磁头频繁定位,这个就是磁盘i/0(数据库系统的实现里面有磁盘的原理介绍,然后专门讲解实现一个数据库系统如何针对磁盘做优化)

free命令中的used项(已经使用的内存),其实是已经包含了buffer和cache部分。

根据上面对buffer和cache的分析,buffer和cache部分实际上是可以拿来使用的内存区(都是缓存数据,释放掉这部分内存空间并不影响)

正因为这样,为了想要准确得知到底有多少可用的内存,linux的free命令,会第二列专门给出减去buffer和cache部分的统计结果来看。

第二列 :-/+ buffers/cache

显示两个值,第一个值,是used-buffers-cache的计算结果。第二个值 是used+buffers+cache的计算结果

思考

从操作系统角度来看,它只关注真正的物理内存剩余多少。所以buffer区域和cache区域它也认为不是剩余的。这没有错。操作系统关注是物理内存真实有多少。

而应用程序角度来看,它关注的是有多少物理内存是自己可以调用的。它认为buffer和cache部分也是可以拿过来用的。也没有错误。

现实中例子用什么来形象化描述呢?

一个人有多少钱,站在不同的角度算法不一样。

有人存款10万。我们只是看它真实钱有多少。那就是10万(操作系统这么认为)

而从另外一个角度,他有房子,如果需要,房子可以卖掉,卖成钱,估算一下价格。假设房子80万,那么他的钱就是80+10=90万(应用程序这么认为)

两个计算方式都没有错。角度不同。

buffer和cache,对于应用程序而言,觉得这部分是可以回收的(我需要的时候随时可以用。房子随时可以套现拿到钱使用)

buffer和cache有什么本质区别的更多相关文章

  1. [转帖]buffer与cache的区别

    作者:沈万马链接:https://www.zhihu.com/question/26190832/answer/146259979来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. 看过这两张图,就明白 Buffer 和 Cache 之间区别

    Buffer常见的是这个: 对,就是铁道端头那个巨大的弹簧一类的东西.作用是万一车没停住,撞弹簧上减速慢,危险小一些.叫缓冲. Cache常见的是这个: 没错,就是一种保管箱.看到右边那个被锈掉的Fo ...

  3. Buffer和Cache的区别

  4. Linux Free命令各数字含义及Buffer和Cache的区别

    Linux Free命令各数字含义及Buffer和Cache的区别 Free 命令的各数字含义 命令演示 [root@vm1 ~]# free total used free shared buffe ...

  5. linux free命令中buffer与cache的区别

    linux free命令中buffer与cache的区别 2012-05-15      个评论       收藏    我要投稿 linux free命令中buffer与cache的区别   ~$ ...

  6. free命令、buffer与cache的区别

    freefree 命令相对于top 提供了更简洁的查看系统内存使用情况: # free total used free shared buffers cached Mem: 255988 231704 ...

  7. Linux中Buffer和Cache的区别

    1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚 ...

  8. free命令(buffer与cache区别/linux查看空闲内存)

    自:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html   Linux上free命令的输出. 下面是free的运行 ...

  9. Linux 内存buffer与cache区别_003

    一.首先大概了解一下计算机CPU.Cache.Buffer.内存.硬盘.SWAP CPU也称为中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机 ...

随机推荐

  1. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  2. JS 操作 DOM

    定义:文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 节点:(例如:< ...

  3. Jenkins的系统设置

    1.登录Jenkins进入以下界面: 2.点击 系统管理 3.点击 系统设置 (下图的系统设置是已经设置好的) 4.这里设置主要设置 Jenkins URL (这里我是测试的所以使用默认的)与 邮件的 ...

  4. WPF入门教程系列十二——依赖属性(二)

    二. 依赖属性的优先级 由于WPF 允许我们可以在多个地方设置依赖属性的值,所以我们就必须要用一个标准来保证值的优先级别.比如下面的例子中,我们在三个地方设置了按钮的背景颜色,那么哪一个设置才会是最终 ...

  5. unity生成WP工程后ExtendedSplashImage显示不正确的问题

    这个bug我已经彻底无语了,居然这么久都没有fix. 解决方法如下: <SwapChainPanel x:Name="DXSwapChainPanel"> <Gr ...

  6. css text-align-last设置末尾文本对齐方式

    text-align-last:auto | start | end | left | right | center | justify auto: 无特殊对齐方式. left: 内容左对齐. cen ...

  7. 利用CSS3 clip-path裁剪各种图形。

    'clip-path'是css3的一个强大属性,我们可以利用它来绘制各种各样的图形,当然不只是这些,接下来一起看看它的强大功能吧. 首先介绍的是clip-path里面的polygon功能,我们可以通过 ...

  8. WPF中找不到Image或者Image不是Drawing系列

    WPF中默认没有引用WinForm里面的一些东西,都是用它自带的那一套,但又不能完全脱离,所以有的时候比较蛋疼

  9. 对于资源上MissingScript的清理方案讨论

    Unity工程随着复杂度的提升,常会有Prefab上的脚本丢失的情况,如下图所示: 首先失去关联的脚本,是没有线索找到原来是什么文件的,那么有没有办法批处理将这些MissingScript进行一下清理 ...

  10. DOM操作表格

    前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量 ...