Linuxがキャッシュを自動的に消去しないのはなぜですか?

Linuxがキャッシュを自動的に消去しないのはなぜですか?

背景

私の質問は基本的にこの質問に対するフォローアップです。質問そして回答、特にこれはコメント

大量のファイルをコピーまたは再同期する必要があるたびに、システムのメモリがいっぱいになる傾向があるため、rootとして次のスクリプトを実行します。

while true ; do echo "syncing" && sync && echo 3 > /proc/sys/vm/drop_caches && echo "done" && sleep 60 ; done ;

質問

  • これはどのようにしてシステムに害を及ぼすか、悪影響を及ぼしますか? (具体的に引用されたレビューで言及されている「リスク」とは何ですか?)
  • 答えが「いいえ」(私が疑うもの)なら、Linuxがデフォルトでこのコマンドを自動的に実行しないのはなぜですか? (目立つ変化は見られず、メモリが不足していないことだけを確認しました...)

ベストアンサー1

キャッシュを削除しても役に立たないからです。物事を忘れてしまうのは利益のある場所ではありません。利点は、とにかく起こるメモリを再利用することです。一部のポイントデータがメモリから消去されるためです。

ただし、これらの大規模なタスクを実行するとパフォーマンスが低下する可能性があります。データがキャッシュされているが再利用されない場合は、何の利点もなく他のデータが削除されます。

したがって、キャッシュなしでジョブを実行する必要があります(残念ながら、これを実行するコマンドは覚えていません)。

おすすめ記事