1. 程式人生 > 實用技巧 >嵌入式linux修改快取寫入磁碟引數

嵌入式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