免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2386 | 回复: 1
打印 上一主题 下一主题

Linux操作系统中内存buffer和cache的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-18 21:47 |只看该作者 |倒序浏览
我们一开始,先从Free命令说起。

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

        $free

        totalusedfreesharedbufferscached

        Mem:25526823833216936085540126384

        -/+buffers/cache:26408228860

        Swap:2650000265000

        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的区别

        Abufferissomethingthathasyettobe"written"todisk.Acacheissomethingthathasbeen"read"fromthediskandstoredforlateruse.

        更详细的解释参考:DifferenceBetweenBufferandCache

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

        cache和buffer的区别:

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

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

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

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

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

        如果cache的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO必会非常小。
本文出自:http://www.xiongdanfen.net羚羊角 转载请注明

论坛徽章:
0
2 [报告]
发表于 2011-08-19 08:58 |只看该作者
果然比top强大!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP