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