Linux中内存buffer和cache的区别

本文深入探讨了Linux系统中内存管理的核心概念,包括buffer和cache的作用及其区别,详细解析了buffercache与pagecache的工作原理和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值