3

echo [1,2,3] > /proc/sys/vm/drop_caches を実行する前に「同期」を実行することをお勧めします。なぜそれが必要なのか理解できません.drop_cacheは非破壊的な操作であり、ダーティデータはdrop_cacheによって削除されません. また、echo 1 > /proc/sys/vm/drop_caches が最初にダーティ データをディスクにコミットし、次にキャッシュを解放するという動作も確認しました。これは /proc/meminfo "Dirty" & "Writeback" で確認できます。

4

2 に答える 2

8

に書き込むと、クリーンなキャッシュdrop_cachesのみが解放されます。

実行syncすると、変更されたデータが書き戻されます。つまり、ダーティキャッシュがクリーン キャッシュに変換されます。

于 2013-07-07T15:54:15.323 に答える
3

私は小さな実験を行うことでこれを裏付けました。

「同期」は、ダーティ キャッシュをクリーン キャッシュにするだけです。キャッシュは引き続き保持されます。drop_caches はダーティ キャッシュには触れず、クリーン キャッシュのみを削除します。したがって、すべてのメモリを解放するには、フラッシュ デーモンが変更をディスクに書き込んでいない場合に備えて、drop_caches の前にまず同期を​​行う必要があります。

この小さな実験についての私のブログ -

Linux-Storage I/O の O_DIRECT、O_SYNC フラグ、バッファ、およびキャッシュとは正確には何ですか?

于 2013-07-08T06:03:54.367 に答える