私のFedoraラップトップでは、スワップパーティションが私には役に立たなかったようで、無効にしました。 SSDへの書き込みが開始されると、システムは停止します。この程度のメモリを消費するアプリケーションは通常停止しないので、一度割り当てるとますます多くのメモリが割り当てられます(gitkには1M行の差があり、メモリリークのあるバグがあるプログラムなどがあります...)。
メモリが使い果たされると、システムがSSDに書き込むことがまだ発見されました。スワップが有効になっていないようです。
$ free -h
total used free shared buff/cache available
Mem: 7,7G 2,2G 455M 685M 5,1G 4,8G
Swap: 0B 0B 0B
SSDに置き換えるのではなく、カーネルにプログラムを終了させるために有効にする必要がある設定はどこですか?
答え1
私の考えでは、あなたが探しているものが/proc/sys/vm/overcommit_memory
メモリ割り当ての確認を強制するには2に設定する必要があります(プログラムは実際に利用可能なものよりも多くのメモリを割り当てることはできません)。/proc/sys/vm/overcommit_ratio
少なくともプログラムがインストールされているメモリの半分以上を割り当てる必要がある場合は、調整が必要になることがあります。procfs
マンページこれらすべてを文書化します。
すべてのスワップを無効にする決定をもう一度考えてみてください。Linuxで仮想マシンにスワップスペースが必要なのはなぜですか?もっと学ぶ。
スワップが無効になっている場合、カーネルをスワップアウトできないことは注目に値します。できることは、マッピングされたファイルをバックアップストアとして使用することだけですが、通常は書き込み操作は含まれません(特に実行可能ファイルとライブラリの場合)。ストレス状態で書き込みが発生した場合、カーネルがダーティページ(主に対応するバッファ)を回収するためにフラッシュしているためかもしれません。