LinuxはRAMキャッシュを無効にします。

LinuxはRAMキャッシュを無効にします。

私はARM M1 MacBook Airでカーネル6.5を使用してDebian stableを実行しています。最大の問題は、RAMとVRAMが統合されていることであり、使用されているRAMの量がVRAMであることを確認するための具体的な方法はありません(Asahi Linuxメイン開発者による確認)。

これにより、空きRAMが500MiBに近づくと、システムは継続的に停止します。理論的には、このプログラムを使用してメモリを割り当てることができ、カーネルはそれを終了しますstressが、実際にはあまりにも多くのメモリを使用する他のプログラムは、カーネルが使用されているメモリのVRAM部分を考慮しないため、最終的にコンピュータを停止します。カーネルは200MiBのRAMを使用するプログラムを終了しますが、3GiBのVRAMを使用するプログラムはそのまま残します。

カーネルがスワップを開始すると、ログを作成する時間がなくてもシステムがすぐに停止するため、SWAPを生成することは役に立ちません。

sysctlより多くのRAMを使用できるように、RAMのディスクキャッシュを無効にするようにカーネルパラメータまたはパラメータを設定できますか?システムを引き続き実行するには、スクリプトを継続的に実行する必要があり、スクリプトdrop-cachesをキーボードショートカットにバインドし、特定のプログラムが閉じられた後に自動的に実行されるようにしました。

最も基本的な使用(Firefoxで4つのYouTubeタブを開く、誰かがTelegramに電話する、Telegramが自動的にダウンロードする60秒のビデオを送信)の間にクラッシュすることがあります。

このような質問に対する私が見つけた答えは「あなたは愚かです。キャッシュを無効にする必要はありません。この質問をもう一度尋ねないでください」であり、実際の解決策はありません。

"while true; echo 3 > /proc/sys/vm/drop_caches ; sleep 60" &このようなものを入れるよりも良い方法が必要です/etc/rc.local

これは問題を解決する正しい方法ではないことを知っていますが、できるだけ多くの空きRAMを確保するためにカーネルキャッシュをブロックする必要があります。

ベストアンサー1

私は起こったことの根拠は非常に懐疑的です。

AFAIK、最新のMacbookにはRAMとVRAM専用の別々のRAM領域がなく、RAMとVRAMの割り当てにアプリケーションで使用できる統合メモリブロックであり、LinuxカーネルはRAM割り当てがVRAMを占有しないようにする必要があります。

あなたが説明する内容は、Asahi開発者に報告する必要があるカーネルのバグのように聞こえます。

mem=MAX_RAMたとえば、mem=7G(7GB)カーネルブートオプションを試して、役に立つかどうかを確認できますが、それは疑問です。

おすすめ記事