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

Free 命令的各数字含义

命令演示

[root@vm1 ~]# free
total used free shared buffers cached
Mem: 502276 119160 383116 0 11040 46588
-/+ buffers/cache: 61532 440744
Swap: 835576 0 835576

加上参数m,显示的单位为MB

[root@vm1 ~]# free -m
total used free shared buffers cached
Mem: 490 116 374 0 10 45
-/+ buffers/cache: 60 430
Swap: 815 0 815

按行详解

  • total :物理内存的实际总量
  • used :总计分配给缓存(buffer+cache)的使用的数量,但是其中部分可能并未实际使用(注意:这里不是实际使用了的内存)
  • free :未被分配的内存(真正的空闲,未被任何程序占用)
  • shared:多个进程共享的内存总额
  • buffers:磁盘缓存(buffer cache)的大小(可提高I/O调用的性能),系统分配的,但是未被使用的buffer剩余量。
  • cached:磁盘缓存(page cache)的大小(可提高I/O调用的性能),系统分配的,但是未被使用的cache剩余量。
  • -buffers/cache:表示已被我们程序使用的内存数,计算方法:used-buffers-cached(注意:这里才是内存的实际使用量)
  • +buffers/cache:表示还可被我们使用的内存数,计算方法:free+buffers+cached
  • swap:交换分区总量,使用量,剩余量

内存相关参数计算-数字取自上述结果

操作系统总的内存数量:total=used+free=116+374=490MB
操作系统目前内存实际使用量:used-buffers-cached=116-10-45=61MB
操作系统目前可用内存总量=free+buffers+cached=374+10+45=429MB

cache和buffer的区别

1.cache:高速缓存,是位于CPU与主内存之间的一种容量较小但是速度较高的存储器,由于CPU的速度远高于主内存,CPU直接从内存中存取数据需要等待一定的时间周期。cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。

cache又分为一级cache(L1 cache)和二级cache(L2 cache),L1集成在CPU内部,L2早期一般时焊在主板上的,现在也都即成在CPU内部,常见L2 cache的容量有256KB或512KB。

2.buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少。速度快的设备可以利用buffer不间断的进行写操作,速度慢的设备可以直接从buffer中读取数据,减少速度快的设备的等待时间,提高效率。

那么,Free中的cache和buffer用途就显而易见啦!

cache:文件系统的缓冲(page cache)

buuffer:块设备的读写缓冲区(buffer cache)

Linux Free命令各数字含义及Buffer和Cache的区别的更多相关文章

  1. Linux Free命令每个数字的含义 和 cache 、buffer的区别

    Linux Free命令每个数字的含义 和 cache .buffer的区别 我们按照图中来一细细研读(数字编号和图对应)1,total:物理内存实际总量2,used:这块千万注意,这里可不是实际已经 ...

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

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

  3. linux的top下buffer与cache的区别、free命令内存解释

    buffer:    缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据 的区域.通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据 时,速度快的设备的操作进程不发 ...

  4. Linux操作系统中内存buffer和cache的区别--从free命令说起(转)

    原文链接:http://os.51cto.com/art/200709/56603.htm 我们一开始,先从Free命令说起. Free free 命令相对于top 提供了更简洁的查看系统内存使用情况 ...

  5. Linux中Buffer和Cache的区别

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

  6. Linux内存管理机制中buffer和cache的区别

    Linux内存管理机制中buffer和cache的区别理解linux内存管理,需要深入了解linux内存的各个参数含义和规则,下面介绍一下Linux操作系统中内存buffer和cache的区别. Fr ...

  7. linux的top下buffer与cache的区别

    buffer:    缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据 的区域.通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据 时,速度快的设备的操作进程不发 ...

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

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

  9. Buffer和Cache的区别

随机推荐

  1. cocos布局分析

    HBox和VBox布局 HBox只是一个水平布局包装类. HBox里面所有的孩子节点都会水平排列成一行 VBox仅仅是对垂直布局的一个简便的类封装. VBox把它的子节点布局在一竖列中. Layout ...

  2. 基于Windows10安装Ubuntu双系统

    步骤: 1.从Ubuntu的官网上下载Ubuntu的iSO安装包. http://www.ubuntu.com/download/ 我安装的版本是Ubuntu 14.04.3 LTS 64位版本 2. ...

  3. ReactiveCocoa源码拆分解析(一)

    (整个关于ReactiveCocoa的工程可以在https://github.com/qianhongqiang/QHQReactive下载) ReactiveCocoa的介绍我就不说了,可以自行百度 ...

  4. nginx反向代理proxy模块相关参数

    http_proxy_module Proxy_pass proxy_pass指令属于ngx_http_proxy_module模块,此模块可以将请求转发到另一台服务器:官方说明:http://ngi ...

  5. C++中的内联成员函数与非内联成员函数

    在C++中内联成员函数与非内联成员函数的可以分为两种情况: 1.如果成员函数的声明和定义是在一起的,那么无论有没有写inline这个成员函数都是内联的,如下: using namespace std; ...

  6. 引擎崩溃、异常、警告、BUG与提示总结及解决方法

    http://www.58player.com/blog-635-128.html [Unity3D]引擎崩溃.异常.警告.BUG与提示总结及解决方法   此贴会持续更新,都是项目中常会遇到的问题,总 ...

  7. << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档

    developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...

  8. poj3984

    定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...

  9. php类与对象

    1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用:php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...

  10. openstack 常用命令

    转自: docs.openstack.org $ nova boot --image ubuntu-cloudimage --flavor 1 --user-data mydata.file