首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:资料 参考手册 服务器
 → 当前位置:首页>linux基础>基础入门>正文

Linux系统中内存buffer和cache的区别

OKLinux www.oklinux.cn 2007-09-20 来源:赛迪网 kid 会员收藏 游客收藏

Free
  free 命令相对于top 提供了更简洁的查看系统内存使用情况:

 

  $ free
  total used free shared buffers cachedMem: 255268 238332 16936 0 85540 126384-/+ buffers/cache: 26408 228860Swap: 265000 0 265000

  Mem:表示物理内存统计
  -/+ buffers/cached:表示物理内存的缓存统计
  Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。

  系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。

  我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。

  total1:表示物理内存总量。

  used1:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

  free1:未被分配的内存。

  shared1:共享内存,一般系统不会用到,这里也不讨论。

  buffers1:系统分配但未被使用的buffers 数量。

  cached1:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

  used2:实际使用的buffers 与cache 总量,也是实际使用的内存总量。

  free2:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

  可以整理出如下等式:
  total1 = used1 + free1total1 = used2 + free2used1 = buffers1 + cached1 + used2free2 = buffers1 + cached1 + free1

  buffer 与cache 的区别
  A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.

  更详细的解释参考:Difference Between Buffer and Cache

  对于共享内存(Shared memory),主要用于在UNIX 环境下不同进程之间共享数据,是进程间通信的一种方法,一般的应用程序不会申请使用共享内存,笔者也没有去验证共享内存对上面等式的影响。如果你有兴趣,请参考:What is Shared Memory?

  cache 和 buffer的区别:
  Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。

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

  Free中的buffer和cache:(它们都是占用内存):

  buffer : 作为buffer cache的内存,是块设备的读写缓冲区

  cache: 作为page cache的内存, 文件系统的cache

  如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。

 

上一篇:Linux操作系统下取得UUID的方法   下一篇:Linux系统 ext2/ext3文件系统介绍

收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·Linux系统 ext2/ext3文件系统介绍
·Linux下让Numlock小键盘指示灯开机就亮
·Windows与Linux最简单直接的区别是什么
·关于Linux系统的一些错误认识总结
·介绍类Linux中各种各样的编程语言
·Linux如何理解用数字表示文件的操作权限
·Linux操作系统的启动步骤说明
·Linux系统下X终端的使用方法
·Linux系统的文件属性详细解析(二)
·常用的正则表达式操作符介绍
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·新手从零开始:Linux系统
·Linux下tar bz gz等压缩包
·从硬盘启动Desktop ISO所
·Linux的GRUB引导程序配置
·Linux系统面面观 PROC文件
·Unix Shell程序编写的方法
·深入理解软件包的配置、编
·Linux操作系统的命令分类
·Linux操作系统下关于引导
·Linux基础知识普及 理解GN
最新文章
·Linux标准系统的文件目录
·关于Linux操作系统的环境
·Ubuntu Linux系统下使用RP
·Linux操作系统中 对Bash变
·安装与建立QT桌面的运行环
·Linux操作系统命令操作小
·详细了解Linux文件系统的
·RedHat Linux AS 和ES的区
·Linux操作系统源码包安装
·Linux操作系统内存使用经
·摸清Linux日志处理的来龙
·让你知道Linux下一般软件
·全方位接触 Linux的声音系
·如何查看 Ubuntu Linux 各
·Linux系统 /etc/fstab各个

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有