dirty_ratio与dirty_background_ratio参数区别--系统优化必选

vm.dirty_background_ratio:这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入磁盘;

vm.dirty_ratio:而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入磁盘);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。

pdflush内核线程的作用:负责将page cache中的脏页数据写入到磁盘中

使用场景:当数据的关键性不是很高的时候,可以将上面2个值调大;当数据关键性很高的时候,上面2个参数的值要调低,保证数据丢失的最小;

之前一直错误的一位dirty_ratio的触发条件不可能达到,因为每次肯定会先达到vm.dirty_background_ratio的条件,后来才知道自己理解错了。确实是先达到vm.dirty_background_ratio的条件然后触发pdflush进程进行异步的回写操作,但是这一过程中应用进程仍然可以进行写操作,如果多个应用进程写入的量大于pdflush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程。

其它相关参数:调整pdflush的刷新频率参数

    dirty_expire_centisecs

    dirty_writeback_centisecs

你可能感兴趣的:(linux)