私のコンピュータには〜20 GBのRAMと〜4 GBのスワップがあります。約8GBのメモリがアプリケーションで使用され、残りはカーネルのディスク領域として使用されます。時間が経つにつれて、スワップ領域が完全に満たされ、何かが終了します。
最初は何かRAMをたくさん割り当てようとするとOOMが発生することが分かりました。したがって、それは理由になることはできません。
私の唯一の説明は、アプリケーションがより多くのRAMを必要とするときにカーネルがディスクのキャッシュ解除を拒否することです。しかし、これがどのように起こるのかわかりません。
すでに持っていましたが、vm.vfs_cache_pressure = 200
何もしないでecho 3 > /proc/sys/vm/drop_caches
解放されました。
これは生産システムであるため、かなりの稼働時間(188日)が蓄積されました。 Debian Buster(カーネル)を実行しています4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24)
。
カーネルがディスクキャッシュに使用されているメモリを解放しないようにする設定や、この動作を引き起こす条件がありますか?
この問題の原因が何であるかについて考えていただきありがとうございます。
編集1:
マシンを再起動し、大量のディスクキャッシュを入手できるようになりましたecho 3 > /proc/sys/vm/drop_caches
。キャッシュをブロックする「孤児」があるようです。それは何ですか?