リムーバブルデバイスのLinux書き込みバッファを減らすには?

リムーバブルデバイスのLinux書き込みバッファを減らすには?

Linuxでは、リムーバブルデバイス(USBスティック/ HDD、SDカードなど)にコンテンツを書き込むと、最初の数秒間に驚くべき書き込み速度が表示されることがよくあり、時にはGB / s(バッファ書き込み書き込み)程度の速度も表示されます。数分間沈黙が流れます(バッファは実際にデバイスに記録されています)。

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

私の場合、書き込みバッファがGBを超えるようです。それを制御する方法はありますか?もっと合理的な値に減らしたいです。

注:これはファイルシステムのキャッシュとは無関係であり、この効果はRAWデバイスでも発生します。

注:書き込みバッファを完全に無効にしたくありません。

ありがとうございます!

ベストアンサー1

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

echo 200000000 > /proc/sys/vm/dirty_bytes

または使用されたRAMの割合(例:1%):

echo 1 > /proc/sys/vm/dirty_ratio

追加情報:https://lwn.net/Articles/572911/

おすすめ記事