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

什么是Cache?什么是Buffer?二者的区别是什么?
cache n.高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问.存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址.buffer 中文译名:缓冲,缓冲器,缓冲液1、 电信设备.在数据传输中,用来弥补不同数据处理速率速度差距的存储装置叫做缓冲器.把数据存放到缓冲器中的技术叫做缓冲.
为您推荐:
其他类似问题
扫描下载二维码您所在的位置: &
Linux操作系统中内存buffer和cache的区别
Linux操作系统中内存buffer和cache的区别
从Free命令说起,来理解buffer和cache两个名词的真正含义。
我们一开始,先从Free命令说起。
free 命令相对于top 提供了更简洁的查看系统内存使用情况:
total used free shared buffers cachedMem: 332 40 126384-/+ buffers/cache: Swap:
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 必会非常小。
【相关文章】
【责任编辑: TEL:(010)】
关于&&&&&&的更多文章
Linux系统的魅力之一就是你可以直接从终端使用命令行来管理整个
讲师: 13人学习过讲师: 64人学习过讲师: 29人学习过
近日,中国工程院院士倪光南老师在接受国内媒体采访时
有媒体报道称微软将于9月30日首次发布Windows 9 预览
CentOS是Linux发行版之一,它是来自于Red Hat Enterpr
本书是在“思想方法学”这一软件工程尚未涉足过的领域中的实习之作。作者亲历国内软件工程的英雄时代、泡沫时代,从失败中醒觉而
51CTO旗下网站博客访问: 3862317
博文数量: 844
注册时间:
认证徽章:
了解并联系warehouse:
http://blog.itpub.net/19602/viewspace-1059211/
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
发布时间: 17:47:03
看的很晕,记录一下,不过几个有关free命令显示出来的公式解释的很清楚原文连接:/blog/?90293/action_viewspace_itemid_3004.html[@more@]Linux操作系统中内存buffer和cache的区别我们一开始,先从Free命令说起。free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ freetotal used free shared buffers cachedMem: 332 40 126384-/+ buffers/cache: Swap:
265000Mem:表示物理内存统计 -/+ buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的......
阅读(3102) | 评论(0) | 转发(0)
发布时间: 12:38:28
外键上没有index操作主表数据时常会引起阻塞和deadlock问题[@more@]外键引起的阻塞:session 1:SQL& create table p(id int primary key )表已创建。SQL& create table r(id int references p on delete cascade)表已创建。SQL& insert into p values(1);已创建 1 行。SQL& insert into p values(2);已创建 1 行。SQL& insert into p values(3);已创建 1 行。SQL&提交完成。SQL& select distinct sid from v$SID----------159SQL& select *ID-------......
阅读(3937) | 评论(0) | 转发(0)
发布时间: 12:31:20
客户系统原来运行在windows上,sga总共给了800m左右,系统尽管运行的不稳定,但是ora-04031错误报的并不多,之后系统迁入到aix 双机rac(oarcle 11.1)环境下,sga给了4g,共享池基本上维持在2g多,但是系统频繁出现ora-04031,出现ora-04031之后客户端应用无法连接,起初客户使用alter system flush shared_pool的办法刷新shared pool,刷新之后问题得以解决,不过没隔几天问题再次出现,此时有时候刷新shared pool不能解决问题了,由于是双机,因此不得以的情况下只能重启出现ora-04031错误的节点上的实例,重启之后问题得以暂时解决,但......
阅读(3540) | 评论(0) | 转发(0)
发布时间: 12:30:23
当存在主外键关系的时候,如果外键上没有索引,而且从表(有外键的表)又比较大时,一些操作主表的动作,如delete可能会消耗很大的资源,因为在操作主表的同时oracle内部需要访问从表。[@more@]SQL& create table t tablespace users as select * from dba_表已创建。SQL& alter table t add constraint pk_t primary key (object_id);alter table t add constraint pk_t primary key (object_id)
*第 1 行出现错误:ORA-01449: 列包含 NULL 值; 无法将其变更为 NOT NULLSQL&gt......
阅读(3450) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
请登录后留言。8009人阅读
Linux(41)
性能测试(84)
今天监控linux资源时,在输入top命令后,发现内存相关MEM和SWAP的buffer与Cache,顺便研究了一下。
什么是Cache?什么是Buffer?二者的区别是什么?
Buffer和Cache的区别 buffer与cache操作的对象就不一样。
buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。
cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计的,也就是平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,但是造价高,又由于在cpu内不能集成太多集成电路,所以一般cache比较小,以后intel等公司为了进一步提高速度,又增加了二级cache,甚至三级cache,它是根据程序的局部性原理而设计的,就是cpu执行的指令和访问的数据往往在集中的某一块,所以把这块内容放入cache后,cpu就不用在访问内存了,这就提高了访问速度。当然若cache中没有cpu所需要的内容,还是要访问内存的。
缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写入磁盘),也可以通过sync命令手动清空缓冲。
简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。 buffer是由各种进程分配的,被用在如输入队列等方面。一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。
cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提高系统性能。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2581086次
积分:21757
积分:21757
排名:第246名
原创:389篇
转载:23篇
译文:30篇
评论:314条当前位置: >
linux的top下buffer与cache的区别
时间: 10:34 来源:未知 标签: 作者:谭博 阅读:次
& &缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的操作进程不发生间断。
& & & 当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,
这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会
自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有
内存可用。如果你希望手动去释放Cache Memory也是有办法的
我们使用的Linux和Windows可不太一样,用top命令得出来的可能不是真实使用的内存,用free命令第二行才是系统真实使用的内存
在终端中敲入:free
显 示:&total& used& free& shared& buffers& cached
Mem:&&& 332& 16936&&& 0&&&&& 85540&&& 126384
-/+ buffers/cache:2
系统的总物理内存:255268Kb(256M),但系统 当前真正可用的内存并不是第一行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 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1
关注微信公众号
微信扫一扫,打赏我
内容不错,支持一下
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)}

我要回帖

更多关于 linux释放cache内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信