本篇内容主要讲解“怎么更改linux操作系统文件缓存刷新策略”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么更改linux操作系统文件缓存刷新策略”吧!
为长岛等地区用户提供了全套网页设计制作服务,及长岛网站建设行业解决方案。主营业务为成都做网站、成都网站设计、长岛网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
以下针对linux操作系统,在centos/RHEL 6、centos/RHEL 7上测试有效。
和文件系统写缓存策略相关的主要是下面两个参数,其它相关参考可自行谷歌:
/proc/sys/vm/dirty_ratio
文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当需要持续、恒定的写入时,应该降低其数值。
/proc/sys/vm/dirty_background_ratio
控制 pdflush 进程在何时刷新磁盘。单位是百分比,表示系统内存的百分比,意思是当写缓冲使用到系统内存多少的时候, pdflush 开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当需要持续、恒定的写入场合时,应该降低其数值。
vm.dirty_background_ratio: 这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存;
vm.dirty_ratio: 而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。
正常都是先达到vm.dirty_background_ratio的条件然后触发flush进程进行异步的回写操作,但是这一过程中应用进程仍然可以进行写操作,如果多个应用进程写入的量大于flush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程。
也就是说,正常vm.dirty_background_ratio < vm.dirty_ratio才有意义。
在经常有大量写入操作的系统中,应该分别调低这两个参数的值,加快数据刷盘的频率,从而避免因系统同步处理文件IO而导致相关进程处于D状态。
临时生效方法(重启后失效):
echo 5 >/proc/sys/vm/dirty_background_ratio echo 10 >/proc/sys/vm/dirty_ratio
或者
sysctl -w vm.dirty_background_ratio=5 sysctl -w vm.dirty_ratio=10
永久生效方法:
echo "vm.dirty_background_ratio = 5" >> /etc/sysctl.conf echo "vm.dirty_ratio = 10" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf
到此,相信大家对“怎么更改linux操作系统文件缓存刷新策略”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!