调参侠必知必会:上(Kernel内存调优参数)
调参侠必知必会:下(Kernel内存调优参数)
啦啦啦再补充一些sys/vm/下的参数使用,主要是关于脏页的回写
看下脏页的概念 ->
“脏页”:当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。通过时间(dirty_expire_centisecs)和比例,控制Linux脏页返回。
dirty_ratio
这个参数控制文件系统的文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当你需要持续、恒定的写入场合时,应该降低其数值。当系统到达此点时,必须将所有脏数据提交到磁盘,同时所有新的I/O块都会被阻塞,直到脏数据被写入磁盘。这通常是长I/O卡顿的原因,但这也是保证内存中不会存在过量脏数据的保护机制。
dirty_expire_centisecs
当Linux中脏页的时间到达dirty_expire_centisecs,无论脏页的数量多少,必须立即写回。通过在后台启动进程,进行脏页写回。
看我手机上目前是200分秒,2秒
dirty_background_ratio
该参数指定了当文件系统缓存脏页数量达到系统可用内存(free + reclaimable)百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存。
dirty_writeback_centisecs
指定多长时间 pdflush/flush/kdmflush 这些进程会唤醒一次,然后检查是否有缓存需要清理。
dirty_background_bytes和dirty_bytes
另一种指定这些参数的方法。如果设置_bytes版本,则_ratio版本将变为0,反之亦然。一般不用