わかりました。これは同じトピックに関する1000番目の質問です。数日間、たくさんの投稿を読んでいますが、まだ奇妙な状況に対する答えを見つけることができません。
私のコンピュータに16GBのRAMがある場合、すべてが正常です。 32GBにアップグレードしましたが、カーネルが使用できるすべてのRAM(〜25GB)を消費し始め、アプリケーション用のスペースが残りませんでした。メモリ使用量を次のように報告しますfree
。atop
バッファ/キャッシュ。
キャッシュを消去すると、数GBを復元できますが、数分間だけ復元されます。 2つのSSHセッションを除いてすべてを閉じようとしました。同じ結果。実行中のアプリが10個未満ですが、まだ約20GBのスペースがあります。バッファ/キャッシュコアとして食べます。これを削除する唯一の方法は、再起動することです。
私はカーネル4.4.0-79-genericでLinux Mint 18を実行しています。ちなみに、私のシステムは2 GB未満のRAMで起動します(バックグラウンドで空腹のアプリは実行されません)。
漏れを識別する方法を知っている人はいますか?
[解決済み]- 理由は決まっていますが、その理由は次のとおりです。案内図(これに対する私のコメントは私の答えにあります)
答え1
これは問題ではありません。 Linuxが動作する方法は、RAMを多用するアプリケーションに影響を与えずにパフォーマンスを向上させることです。
答え2
Mint 18.1を再インストールしましたが、問題がなくなりました。メモリ使用量は、以前の25〜30 GBから3 GB未満のままです。
何が起こっているのか私の理解は、これが他の人に役立つなら、カーネルにメモリリークがあるということです。カーネル自体が漏洩するのではないかと疑われますが、ドライバが原因かもしれません。
カーネルメモリリークに関する興味深いドキュメントが見つかりました。https://01.org/linuxgraphics/gfx-docs/drm/dev-tools/kmemleak.html。どのバージョンのカーネルがそれを有効にできるかはわかりませんが、Ubuntuの通常のカーネル4.10では有効にできません(カーネルはオプションを有効にして再コンパイルする必要があります)。
このアイデアに従ってください。ついに理由を見つけました。。数週間前に設置しました。案内図。システムアプリケーションとして表示されません。再インストールしましたが、結果は簡単でした。プロセスの数が始まるにつれて、メモリ使用量は徐々に増加し続けます。
同じ問題がここに説明されています。https://forums.linuxmint.com/viewtopic.php?t=226774
答え3
キャッシュを消去すると、数GBを復元できますが、数分間だけ復元されます。 2つのSSHセッションを除いてすべてを閉じようとしました。同じ結果。
説明したように、バックグラウンドアクティビティなど、識別する項目があるように聞こえます。 2番目のケースでは、驚くべきことにキャッシュを消去してデスクトップセッションの「2 GB未満のRAMを使用」レベルに戻すことはできません。
キャッシュからダーティページを削除できないため、データが失われることを覚えておいてください。 (vm.dirty_writeback_centisecsの後に始まる書き込み保存として「クリーンアップ」する必要があり、デフォルトは3秒です)。完全性のためにsync
キャッシュを削除する前に使用してください。
通常、ページキャッシュはアプリケーションの読み書きで埋められなければなりません。あなたが専門家であればatop
(私はそうではありません)、おそらくそれはあなたにインスピレーションを与えます。それ以外の場合は、iotop
プロセスごとの帯域幅が表示されます。ベストを尽くしてキャッシュをクリアし、デスクトップが戻ってくるのを待ってから、iotopに何が表示されるのかを見てください。
iotop -b
後で出力が失われないようにバッチモードが提供されます。
たとえば、今すぐ実行するようにバックアップを構成した場合は、これらの統計を表示できます。 (一部のバックアップツールは、ページキャッシュを埋めてGUIアプリケーションをアンインストールすることなどを恐れて、意図的にページキャッシュを使用しないようにします。)