嵌入式linux修改缓存写入磁盘参数

 

正常写入系统中的内容会首先写入到缓存,然后在由守护进程写入到磁盘,所以在系统高速写入的时候断电,就可能会照成磁盘文件丢失

主要是几个参数决定的:

1.   /proc/sys/vm/dirty_ratio  表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据

2.  /proc/sys/vm/dirty_background_ratio 表示系统内存的百分比,意思是当写缓冲使用到系统内存多少的时候,pdflush开始向磁盘写出数据

3.  /proc/sys/vm/dirty_writeback_centisecs  单位是 1/100秒。缺省是 3000,也就是 30 秒的数据就算旧了,将会刷新磁盘

占比百分之多少,这样就看系统的内存了,系统如果内存比较大,那么就到达了比较大的容量才会写,所以要根据自己的情况来,如果需要快速写,那么占比就需要设置小一点

我使用的参数是:

echo 1 > /proc/sys/vm/dirty_ratio
echo 1 >/proc/sys/vm/dirty_background_ratio
echo 10 >/proc/sys/vm/dirty_writeback_centisecs
echo 262144 >/proc/sys/vm/min_free_kbytes
echo 1000 >/proc/sys/vm/dirty_expire_centisecs

我是比较极端的情况,就是需要快速写入,所以这样做,正常情况应该设置大一些

dirty_expire_centisecs设置为10秒这样,/proc/sys/vm/dirty_writeback_centisecs设置为1秒以上

我为了表现出很明显的效果,就这样设置,这样配置了以后,确实发现复制文件从ftp进去,瞬间断电,就能保存起来,否则需要五秒钟左右,但是也看文件大小,大于缓存设置的上限也会立即写入,所以对这些值的设置很重要

参考下面有详细的解释:  https://blog.csdn.net/u013463707/article/details/103902976
原文地址:https://www.cnblogs.com/ChenChangXiong/p/14267089.html