缓存相关参数调整

Linux文件系统缓存进程

文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别


几个系统参数说明

$ sysctl -a | grep "dirty*"
vm.dirty_background_ratio = 10
vm.dirty_ratio = 20
vm.dirty_background_bytes = 0
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 500

vm.dirty_background_ratio和vm.dirty_ratio:

vm.dirty_background_bytes和vm_dirty_bytes:

与上面的类似,只是不是用占内存的百分比来衡量内存中待写数据,而是用字节

vm.dirty_expire_centisecs:

待写数据停留在内存中最长时间,超过这个时间,强制写入数据,单位是百分之一秒。

vm.dirty_writeback_centisecs:

pdflush进程醒来的间隔时间,单位是百分之一秒。


设置参数, 下次启动后恢复

sysctl -w variable=value

把设置保存到文件, 下次启动时自动应用

编辑文件/etc/sysctl.conf:

variable=value

立刻写入缓存到磁盘

$ sync

例子, 降低磁盘工作频率:

vm.dirty_background_ratio = 30
vm.dirty_expire_centisecs = 6000000
vm.dirty_ratio = 60
vm.dirty_writeback_centisecs = 500