美文网首页
Linux buffer/cache回收

Linux buffer/cache回收

作者: clive0x | 来源:发表于2021-06-30 14:00 被阅读0次

    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 buffer/cache回收

          本文链接:https://www.haomeiwen.com/subject/iyqrultx.html