html5网站正在建设中,手机网站不收录,app图片怎么制作,施工企业会计核算实务这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响#xff0c;故调研了一些降低文件系统缓存大小的方法#xff0c;其中一种是通过修改/proc/sys/vm/dirty_background_ration以及/proc/sys/vm/dirty_ratio两个参数的大小来实现。看了不少相关博文的… 这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响故调研了一些降低文件系统缓存大小的方法其中一种是通过修改/proc/sys/vm/dirty_background_ration以及/proc/sys/vm/dirty_ratio两个参数的大小来实现。看了不少相关博文的介绍不过一直弄不清楚这两个参数的区别在哪里后来看了下面的一篇英文博客才大致了解了它们的不同。 vm.dirty_background_ratio:这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时如5%就会触发pdflush/flush/kdmflush等后台回写进程运行将一定缓存的脏页异步地刷入外存vm.dirty_ratio:而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时如10%系统不得不开始处理缓存脏页因为此时脏页数量已经比较多为了避免数据丢失需要将一定脏页刷入外存在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。之前一直错误的一位dirty_ratio的触发条件不可能达到因为每次肯定会先达到vm.dirty_background_ratio的条件后来才知道自己理解错了。确实是先达到vm.dirty_background_ratio的条件然后触发flush进程进行异步的回写操作但是这一过程中应用进程仍然可以进行写操作如果多个应用进程写入的量大于flush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎此时操作系统会转入同步地处理脏页的过程阻塞应用进程。