1N4*_*001 9 buffer removable-storage
在 Linux 上将内容写入可移动设备(USB 记忆棒/HDD、SD 卡等)时,我经常在前几秒钟看到令人难以置信的写入速度,有时以 GB/s(写入缓冲区的填充)的顺序,然后是几秒钟几分钟的安静(缓冲区实际上正在写入设备)。
这是误导。很难判断实际的写入速度。这很烦人(在刷新缓冲区时不能中断程序)。它可能会导致 FS 损坏,并且至少会在设备正在写入的情况下拔掉插头时导致未写入的内容。
在我的情况下,写入缓冲区似乎超过了 GB。有没有办法控制它?我想将其降低到更合理的值。
注意:这与文件系统缓存无关,这种影响也会出现在原始设备上
注意:我不想完全禁用写缓冲区
谢谢!
我找到了答案。默认情况下,64 位 Linux 维护一个大写缓冲区(可用内存的 20%!)。(有趣的是,32 位 Linux 将自身限制为最多 180MB)要将脏缓冲区大小更改为 200MB,可以使用
echo 200000000 > /proc/sys/vm/dirty_bytes
Run Code Online (Sandbox Code Playgroud)
或使用一定比例的 RAM,例如 1%:
echo 1 > /proc/sys/vm/dirty_ratio
Run Code Online (Sandbox Code Playgroud)
更多信息:https : //lwn.net/Articles/572911/
| 归档时间: |
|
| 查看次数: |
4933 次 |
| 最近记录: |