Linux buffercache回收

Linux buffercache回收,第1张

Linux2.6以后,使用pdflush kernel thread替代了bdflush,pdflush两个主要功能:1.dirty pages写回磁盘,2.超过30S(/proc/sys/vm/dirty_writeback_centisecs)的pages写回磁盘,防止数据丢失

触动机制:

1.进程或者手工调用sync().

2.grow_buffers( )分配buffer page失败

3.free_more_memory() or try_to_free_pages() reclaim失败

4.mempool_alloc()分配失败

5.更多场景,当进程dirty pages达到阈值时,/proc/sys/vm/dirty_background_ratio(默认10%),调用 background_writeout()回收。

pdflush调用background_writeout(),指定刷新nr_pages。

过程中,当脏页在/proc/sys/vm/dirty_ratio(默认30%)以下时,停止刷新,如果脏页比例还在30%以上,往page_cache写将block。

刷新内存范围包括page cache dirty pages,super block dirty pages,device dirty pages等。

linux下的回收站在每一个当前用户目录./local/share/Trash中。\x0d\x0a也可以给linux添加一个回收站。\x0d\x0amkdir /tmp/trash_tmp 建立一个回收站目录\x0d\x0avi /bin/trash 编辑一个文件\x0d\x0amv $@ /tmp/trash_tmp\x0d\x0a:wq 保存退出\x0d\x0aalias rm=/bin/trash添加别名\x0d\x0avi /etc/bashrc\x0d\x0a在最后一行添加alias rm=/bin/trash\x0d\x0achmod 755 /bin/trash\x0d\x0achmod 777 /tmp/trash_tmp\x0d\x0asource /etc/bashrc 启用环境变量\x0d\x0a如果要真的删除某个文件的时候用 /bin/rm -i file_name\x0d\x0a这样一来一个回收站就建立了,以后用rm的时候会自动的将file_name 移动到/tmp/trash_tmp/目录下


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6236253.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存