cache和linux top buff cache的区别

博客访问: 332878
博文数量: 104
博客积分: 3041
博客等级: 中校
技术积分: 1060
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
freefree 命令相对于top 提供了更简洁的查看系统内存使用情况:
-/+ buffers/cache:
Mem:表示物理内存统计 -/+ buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。系统的总物理内存:<FONT color=#988Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 <FONT color=#84Kb,它仅代表未被分配的内存。我们使用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
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.
两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,cache是被从磁盘中读出来的。buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。
阅读(5562) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
毕业于医学院校,在医院工作,有相对丰富的护理经验
&#xe602; 下载此文档
正在努力加载中...
Buffer和Cache的区别
下载积分:1500
内容提示:Buffer和Cache的区别
文档格式:DOCX|
浏览次数:0|
上传日期: 03:17:14|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
Buffer和Cache的区别
官方公共微信vmstat展示的buffer和cache的区别 - 操作系统当前位置:& &&&vmstat展示的buffer和cache的区别vmstat展示的buffer和cache的区别&&网友分享于:&&浏览:91次vmstat显示的buffer和cache的区别
Try the manual first.
$ man vmstat
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
buff: the amount of memory used as buffers (kB).
[红帽子8.0的Man中没有这一行]
cache: the amount of memory used as cache.
See what's on my Red Hat Linux server.
0 612 493916
Answers Googled:
To answer your question, buffers are only used for file metadata (inodes, etc) and data from raw block devices. It's accessed via block device and block number.
Cache has file data blocks, and memory mapped information (i.e. files mapped with mmap() calls). It's accessed primarily via inode number.
So, the main difference would be scope, I guess. One's more concerened with blocks on a device, the other with information in a file.
Either buffer can flush to disk, however. The buffer to the device file and the cache through the file system layer to the block device.
参考资料:
1. Red Hat Manuals
2. Linux Memory Management
3. System Performance Tuning, 2nd Edition, read Chapter 4 Memory online.
or buy Chinese edition from china-pub.
http://blog./more.asp?name=uniware&id=5345
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有wuzhongjie 的BLOG
用户名:wuzhongjie
文章数:133
评论数:149
访问量:236518
注册日期:
阅读量:5863
阅读量:12276
阅读量:355472
阅读量:1052627
51CTO推荐博文
&Page cache和buffer cache到底有什么区别呢?很多时候我们不知道系统在做IO操作的时候到底是走了page cache还是buffer cache?其实,buffer cache和page &cache是Linux中两个比较简单的概念,在此对其总结说明。
Page cache是vfs文件系统层的cache,例如 对于一个ext3文件系统而言,每个文件都会有一棵radix树管理文件的缓存页,这些被管理的缓存页被称之为page cache。所以,page cache是针对文件系统而言的。例如,ext3文件系统的页缓存就是page cache。Buffer cache是针对设备的,每个设备都会有一棵radix树管理数据缓存块,这些缓存块被称之为buffer cache。通常对于ext3文件系统而言,page cache的大小为4KB,所以ext3每次操作的数据块大小都是4KB的整数倍。Buffer cache的缓存块大小通常由块设备的大小来决定,取值范围在512B~4KB之间,取块设备大小的最大公约数。具体关于buffer cache的块大小问题可以参见我的另一篇博文《》。
这里我们可以通过一个小实验来观察一下buffer cache和page cache的差别。运行top命令,我们可以看到实验机器当前内存使用情况:
可以看出内存总容量为16GB左右,page cache用了将近10GB(3796K),buffer cache用了300MB(303796K),其余6GB(6255076K)空闲剩余。在这种情况下,如果对设备dm0进行裸盘写操作,即运行如下命令:
dd if=/dev/zero of=/dev/dm0 count=4096
那么,我么可以通过top命令发现,buffer cache的容量越来越大,空闲内存越来越少,相当一部分内存被buffer cache占用,并且在IO操作的过程中发现bdi(flush-254:176)线程在繁忙的进行数据回刷操作。
经过一段时间以后,大约6GB(6401432KB)的内存被buffer cache占用,89MB(89312KB)内存空闲,其余大约10GB(KB - 6401432KB)的内存还是被page cache占用。通过这个实验,可以说明对于裸盘的读写操作会占用buffer cache,并且当读写操作完成之后,这些buffer cache会归还给系统。为了验证page cache的占用情况,我做了文件系统级的读写操作,运行如下命令进行文件系统写操作:
cp /dev/zero ./test_file
这是一次文件拷贝操作,因此会采用page cache对文件数据进行缓存。通过top工具我们可以看出在数据拷贝的过程中,page cache的容量越来越大,空闲内存数量急剧下降,而buffer cache保持不变。
拷贝一定时间之后,空闲内存将为1.9GB(1959468KB),文件系统page cache增长为将近14.5GB(KB & 235108KB),buffer cache维持在235MB左右(235108KB)。
由此我们可以得出,page cache和buffer cache最大的差别在于:page cache是对文件数据的缓存;buffer cache是对设备数据的缓存。两者在实现上差别不是很大,都是采用radix树进行管理。
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
15:16:28 07:40:36 22:29:37 09:23:5223100人阅读
Linux(95)
[root@rac1 ~]# free&
&&&&&&&&&&&& total&&&&&& used&&&&&& free&&&& shared&&& buffers&&&& cached
Mem:&&&&&& & && &&&&26124&&&&& 0&&&& 124212&&&& 413000
-/+ buffers/cache:&&& &&&&471772&&& &&563336
Swap:&&&& &&2096472&& 842320& &&&1254152
&&&&&& linuxLinux
&&&&&& Linux
Mem-/+ buffers/cached Swapmem,bufferscacheswap
&&&&&& Total1035108KB
&&&&&& Used1008984KBbuffers cache
&&&&&& Free26124KB
&&&&&& Shared0kb
&&&&&& Buffers124212KBbuffers
&&&&&& Cached413000KBcache
-/+ buffers/cache
&&&&&& Used471772kbbuffers cache
&&&&&& Free: 563336kb, buffers cache
&&&&&& Free-/+ buffers/cache= Free(Mem)+buffers(Mem)+Cached(Mem);
&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&& 563336 = 26124 + 3000
&&&&&& Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)
&&&&&& &&&&&& 1008984kb = 471772 + 3000
&&&&&& totalMem = used(-/+ buffers/cache) + free(-/+ buffers/cache)
&&&&&&&&&&&&&&&&&&&& 1035108 = 471772 + 563336
.& 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.
&&&&&& CacheCPU
&&&&&& CPUCPUCacheCPUCPUCache,CPU,
&&&&&& CacheCache(L1 Cache)Cache(L2 Cache)L1 CacheCPUL2 Cache,CPU256KB512KB L2 Cache
2.2 Buffer
&&&&&& Buffer
Freebuffercache
&&&&&& buffer : buffer cachedisk
&&&&&& cache: page cache, cachememory
cache cachecacheIO
-------------------------------------------------------------------------------------------------------
Blog http://blog.csdn.net/tianlesoftware
Email: dvd.
DBA1 ();&& DBA2 ()&& DBA3 ()&&
DBA ();& DBA4
& DBA5 &&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
日,CNDBA社区正式上线测试,欢迎来CNDBA社区学习交流!
积分:102741
积分:102741
排名:第6名
原创:1003篇
转载:87篇
评论:1497条
安徽DBA俱乐部,俱乐部整合安徽地区的IT资源,现有成员已经包含安徽大部分IT公司,俱乐部除了资讯信息分享之外,也会定期举行线下活动。欢迎安徽地区的DBA 加入.
,备注,加群必须注明籍贯,该群只对安徽地区开放。
注意:加群必须注明表空间和数据文件关系
不要重复加群
----------------------
CNDBA_1: k群,大量空闲)
CNDBA_2: (满)
CNDBA_5: (满)
CNDBA_7: (满)
(1)(1)(1)(4)(4)(10)(13)(6)(1)(1)(5)(1)(1)(1)(5)(6)(5)(1)(3)(5)(5)(3)(15)(21)(5)(5)(3)(21)(15)(9)(5)(26)(33)(7)(26)(35)(31)(22)(21)(34)(43)(17)(95)(51)(30)(51)(54)(41)(22)(28)(24)(24)(21)(14)(23)(24)(10)(12)(23)(29)(39)}

我要回帖

更多关于 free buff cache 的文章

更多推荐

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

点击添加站长微信