Buffer
如何減少可移動設備的 Linux 寫緩衝區?
在 Linux 上將內容寫入可移動設備(USB 記憶棒/HDD、SD 卡等)時,我經常會在最初的幾秒鐘內看到令人難以置信的寫入速度,有時大約為 GB/s(填充寫入緩衝區),然後是幾個幾分鐘的安靜(緩衝區實際被寫入設備)。
這是誤導。很難判斷實際的寫入速度。這很煩人(在刷新緩衝區時不能中斷程序)。它可能會導致 FS 損壞,並且至少在設備仍在寫入時拔下電源時會導致未寫入的內容。
就我而言,寫緩衝區似乎超過了 GB。有沒有辦法控制它?我想將其降低到更合理的值。
注意:這與文件系統記憶體無關,此效果也出現在原始設備上
注意:我不想完全禁用寫緩衝區
謝謝!
我找到了答案。預設情況下,64 位 Linux 維護一個大寫緩衝區(可用記憶體的 20%!)。(有趣的是,32 位 Linux 將自身限制為最多 180MB)要將臟緩衝區大小更改為例如 200MB,可以使用
echo 200000000 > /proc/sys/vm/dirty_bytes
或使用一定百分比的RAM,例如1%:
echo 1 > /proc/sys/vm/dirty_ratio