1、从free -m命令看buffer和cache
参考:http://blog.chinaunix.net/uid-24020646-id-2939696.html
total used free shared buffers cached
Mem: 1001 730 271 0 124 397
-/+ buffers/cache: 208 793
Swap: 894 0 894
可以看到作为buffer和cache的内存一共是730M=124+397+208,只有208M正在使用中。
内存会作为buffer和cache使用。
buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区;cache: 作为page cache的内存, 文件系统的cache。
进一步参考:http://alanwu.blog.51cto.com/3652632/1122077
2、buffer cache
Buffer cache是针对设备的,每个设备都会有一棵radix树管理数据缓存块,这些缓存块被称之为buffer cache。通常对于ext3文件系统而言,page cache的大小为4KB,所以ext3每次操作的数据块大小都是4KB的整数倍。Buffer cache的缓存块大小通常由块设备的大小来决定,取值范围在512B~4KB之间,取块设备大小的最大公约数。
注意:"buffer cache",更准确的说,linux从2.4开始就不再维护独立的"buffer cache"模块了,而是把它的功能并入了"page cache"这个内存管理的子系统了,"buffer cache"现在已经是一个unix系统族的普遍的历史概念了。
3、page cache
page cache,又称pcache,其中文名称为页高速缓冲存储器,简称页高缓。page cache的大小为一页,通常为4K。在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。