リムーバブルデバイス用の Linux の書き込みバッファを減らすにはどうすればよいでしょうか?

リムーバブルデバイス用の Linux の書き込みバッファを減らすにはどうすればよいでしょうか?

Linux 上のリムーバブル デバイス (USB スティック/HDD、SD カードなど) にコンテンツを書き込む場合、最初の数秒間は信じられないほどの書き込み速度が見られることがよくあります。書き込みバッファーがいっぱいになる速度は GB/秒単位になることもあり、その後数分間は静かになります (バッファーが実際にデバイスに書き込まれます)。

これは誤解を招きます。実際の書き込み速度を判断するのが難しくなります。煩わしいです (バッファをフラッシュしている間はプログラムを中断できません)。書き込み中にデバイスが取り外されると、FS が損傷し、少なくとも書き込まれていないコンテンツが発生する可能性があります。

私の場合、書き込みバッファは 1 GB を超えているようです。これを制御する方法はありますか? これをより適切な値に減らしたいと思います。

注: これはファイルシステムのキャッシュに関するものではなく、この影響はrawデバイスにも現れます。

注: 書き込みバッファを完全に無効にしたくない

ありがとう!

答え1

答えが見つかりました。64ビットLinuxはデフォルトで大きな書き込みバッファ(使用可能なメモリの20%!)を維持します。(興味深いことに、32ビットLinuxは最大180MBに制限されています)ダーティバッファサイズを例えば200MBに変更するには、次のようにします。

echo 200000000 > /proc/sys/vm/dirty_bytes

またはRAM のパーセンテージ (例: 1%) を使用するには:

echo 1 > /proc/sys/vm/dirty_ratio

詳しくは:https://lwn.net/Articles/572911/

関連情報