私は仕事用にラップトップを使用しているので、システムをシャットダウンせずに毎日RAMにしばらく停止します。これにより、毎日すべてのアプリを再起動する必要がなくなります。
数日間「稼働時間」を送信した後、キャッシュがいっぱいになったことを確認しましたが、完全に消去することはできません。これによりスワップが使用され、OOMが発生します。
# echo 3 > /proc/sys/vm/drop_caches; free -wht
total used free shared buffers cache available
Mem: 23Gi 2.2Gi 15Gi 4.7Gi 0.0Ki 5.2Gi 15Gi
Swap: 2.0Gi 0B 2.0Gi
Total: 25Gi 2.2Gi 17Gi
# free -wht
total used free shared buffers cache available
Mem: 23Gi 4.4Gi 457Mi 9.1Gi 3.5Gi 14Gi 9.2Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
Total: 25Gi 4.4Gi 2.4Gi
# echo 3 > /proc/sys/vm/drop_caches; free -wht
total used free shared buffers cache available
Mem: 23Gi 4.3Gi 9.0Gi 9.0Gi 0.0Ki 9.8Gi 9.4Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
Total: 25Gi 4.3Gi 11Gi
# echo 3 > /proc/sys/vm/drop_caches; free -wht
total used free shared buffers cache available
Mem: 23Gi 4.3Gi 9.0Gi 9.0Gi 0.0Ki 9.8Gi 9.4Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
Total: 25Gi 4.3Gi 11Gi
# uptime
10:57:09 up 3 days 19:26, 5 users, load average: 0.89, 1.94, 1.69
# uname -a
Linux xxxxx-00164 5.3.18-150300.59.76-preempt #1 SMP PREEMPT Thu Jun 16 04:23:47 UTC 2022 (2cc2ade) x86_64 x86_64 x86_64 GNU/Linux
#
どのアプリやファイルがキャッシュに閉じ込められているかを確認する方法はまだわかりません。私は3> drop_cachesが削除されたと仮定します。みんなファイルキャッシュエントリ。しかし、私のラップトップはより長く動作するので、キャッシュを削除すると毎回確保されるリソースが減ります。上記の出力は約8時間続きます。 1秒以内に2回(最後の2つのechoコマンド)キャッシュを消去しようとしましたが、キャッシュに残っていた内容が利用可能なエントリから失われました。
そのような行動を分析する方法は?キャッシュには何が残っていますか?
とても感謝しています!ステファンK.
答え1
数日間「稼働時間」を送信した後、キャッシュがいっぱいになったことを確認しましたが、完全に消去することはできません。これによりスワップが使用され、OOMが発生します。
私はあなたが間違った問題を見ていると思います。 drop_cachesコマンドは、使用している項目を削除できません。したがって、ゼロにはなりません。しかし、これは通常問題ではありません。このサイトではおそらく12の答えがあります(例:Linuxシステムでバッファとキャッシュを消去する方法は?)これは一般的に意味がないと言います。
しかし、それでも数字を直接ゼロにecho 3 > /proc/sys/vm/drop_caches
することができない理由を説明することはないと思います。cached
私は影響を与える可能性がある少なくとも2つを知っています:ファイルtmpfs
(まだ開いているが削除されている可能性があるファイルを含めるServerfaultへのこの回答)とzram
(zramctl
コマンドを参照).他にもいくつかあります。
基本的な問題は、キャッシュではなく、何かがメモリを使用していることです。本当に。