文件系统缓存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