良许Linux教程网 干货合集 Linux系统页缓存

Linux系统页缓存

Linux系统中页缓存是一个相对独立的概念,其根本目的是为了加速对后端设备的IO效率。下面良许教程网为大家分享一下Linux页缓存。

系统当前页缓存大小等数据可以查看/proc/meminfo文件,下面是一个简单例子 [root@unimas_ses ]# cat /proc/meminfo Cached: 1094972 kB Dirty: 20484 kB Writeback: 0 kB

为了阅读方便,很多与本文章内容不相关信息去除了。

Cached:当前页缓存大小

Dirty:页缓存中等待被写入硬盘数据大小

Writeback:正在写入硬盘数据大小,这个值一般为0,没办法,硬盘写入速度太快了。。。。

页缓存简单介绍完毕,下面就介绍刷新页缓存的pdflush进程了。系统里只能有2~8个pdflush进程,当前pdflush进程个数可以通过/proc/sys/vm/nr_pdflush_threads 查看。当系统内全部pdflush进程繁忙超过1秒后,系统会启动一新pdflush进程。当超过一秒后,系统当前全部pdflush进程空闲时,系统会杀死一个pdflush进程。

系统有一些可控参数影响pdflush进程行为:

/proc/sys/vm/dirty_writeback_centisecs :默认为500(单位百分之一秒),间隔多长时间唤醒pdflush进程进行工作。

但修改该配置文件一般不会对具体唤醒时间有影响,内核算法本身在根据系统实际情况进行控制。

/proc/sys/vm/dirty_expire_centiseconds :默认为3000(单位百分之一秒),数据在页缓存最长多久才会超时,刷入硬盘中。值得注意的是,默认时间为30秒,这说明一般情况下,数据会在页缓存30秒后,才会真正写入硬盘。

/proc/sys/vm/dirty_background_ratio :默认为10或者5(单位百分比),多少比例的Dirty数据在系统空闲内存中,才会刷入至硬盘。系统空闲内存计算方法=Cached+Memfree-Mapped.(这三个数据都是/proc/meminfo内)。

总结下来:系统刷新页缓存正常下只有2种情况,1:数据放入页缓存超过时限。2:页缓存中待写入数据大小已到达上线。

还有一种极端情况,当系统dirty数据大小大于等于/proc/sys/vm/dirty_ratio(默认为40%)时,write操作会堵塞,直至所有dirt写入至文件。可以通过dd if=/dev/zero of=hog模拟这种情况。

至此关于Linux系统页缓存的相关内容分享结束,大家有任何问题都可以通过评论区将问题提交给我们。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部