プログラムが閉じられたときにキャッシュが自動的に同期されるように構成するにはどうすればよいですか?

プログラムが閉じられたときにキャッシュが自動的に同期されるように構成するにはどうすればよいですか?

現在のプログラムが終了時にスタック割り当てをキャンセルしないという問題に取り組んでいます。これはLinuxページキャッシュの自然な動作のようです。

デスクトップを開くと、約300〜500MB程度実行されます。 ArdorなどのRAMを多く使用する他のプログラムを開くためにブラウザを閉じた後使用されるラムは落ちたけど割り当てられたRAMは大幅に変更されていないか、最大2.2GBまで低下します。


同じ問題も議論中これワイヤー。私が見つけた解決策は、次のコマンドを実行してPageCacheだけを消去することでした。

sync; echo 1 > /proc/sys/vm/drop_caches

以下は、dentryとinodeを消去します。

sync; echo 2 > /proc/sys/vm/drop_caches

以下は、PageCace AND dentryとinodeを消去します。

sync; echo 3 > /proc/sys/vm/drop_caches

しかし、毎回これを実行したくありません。私は私のワークスペースがプログラム間でRAMのすべてのビットを自由に利用できるようにしたいと思います。

システムレベルでPageCacheを設定する方法はありますか、それともリスナーの種類でサービスを実行し、プログラムが閉じられたときに上記のコマンドをトリガーするなどの簡単なタスクを実行する必要がありますか?


Braveの電源を入れて、次の例を参照してください。

ブラウザが開いたときのhtopの写真

閉じた後にもう一つあります。

ブラウザを閉じた後のhtopの写真

起動時にRAMは次のようになります。

起動時のhtop

システムメッセージ:

カーネル: 5.10.56-1-lts

フラバ:アーチ

デスクトップ: i3-Gap

テスト済みプログラム: Brave、Chromium、Firefox、Ardor、Gimp、Inkscape

ベストアンサー1

これは、「終了時にスタックの割り当てを解除しない」プログラムとは異なります。あなたが見ているのは、ディスク上のデータがRAMにキャッシュされていることです。これは、あなたがリンクした質問への回答で説明したように正常です。

未使用のRAMは無駄なRAMです。

キャッシュを削除して「修正」しようとしないでください。メモリが不足すると、カーネルは必要に応じてキャッシュされたデータ量を自動的に減らします。キャッシュにデータを保存すると、データにアクセスするのに必要な時間が短縮されます。

これが実際に機能していることを確認するには、Braveを起動して停止してから再起動してください。今すぐ停止し、キャッシュを削除して再起動して、どのくらい時間がかかるかを確認します。

ページキャッシュは、プログラムの終了時に自動的に消去できません。 1つの理由は、ページキャッシュの内容が特定のプロセスに関連していないためです。あなたできる特定のプロセスで使用されるページキャッシュの量を次の場所に配置して制限します。グループcgroupが使用できるメモリ量を制限します。これにはページキャッシュが含まれます。

おすすめ記事