Linux Free/Top中的 Buffers and Cached

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.

buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。
cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。

Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache

page cache是针对文件系统而言的,是对文件数据的缓存;buffer cache是对设备数据的缓存。两者在实现上差别不是很大,都是采用radix树进行管理.

Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。

 

手工释放linux内存——/proc/sys/vm/drop_caches  default 0
sync
echo 3 > /proc/sys/vm/drop_caches       #
free buffers + cached

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches;


linux I/O优化 磁盘读写参数设置
ls /proc/sys/vm

 

pdflush线程
1. 当空闲的内存低于一个特定的阈值时,内核必须将脏页写回磁盘,以便释放内存。
2. 当脏页在内存中驻留时间超过一个特定的阈值时,内核必须将超时的脏页写回磁盘,以确保脏页不会无限期地驻留在内存。

变量 描述
dirty_expire_centisecs 该数值以百分之一秒为单位,它描述超时多久的数据将被周期性执行的pdflush线程写出
dirty_ratio 占全部内存百分比,当一个进程产生的脏页达到这个比例时,就开始被写出
dirty_writeback_centisecs 该数值以百分之一秒为单位,它描述pdflush线程的运行频率
laptop_mode 一个布尔值,用于控制膝上型电脑模式
dirty_background_ratio 占全部内存的百分比。当内存中空闲页到达这个比例时,pdflush线程开始回写脏页


Reference:
http://www.linuxany.com/archives/814.html
http://digdeeply.org/archives/02201800.html

http://www.cnitblog.com/xijia0524/archive/2013/05/21/87502.html
http://chinaapp.sinaapp.com/thread-2534-1-1.html
dirty_background_ratio
http://blog.csdn.net/qinzhonghello/article/details/3739586
http://www.cyberciti.biz/faq/linux-kernel-tuning-virtual-memory-subsystem/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值