メモリがいっぱいになるとどうなりますか?ページが削除されるか、プロセス全体が終了しますか?

メモリがいっぱいになるとどうなりますか?ページが削除されるか、プロセス全体が終了しますか?

質問は簡単ですが、情報が見つかりませんでした。より正確には、2つのオプション(以下)に関する情報が見つかりましたが、それぞれの場合にどのオプションを使用するかは見つかりませんでした。

オプション 1: カーネルはメモリーから取り出し、ディスクと交換できる最良のページを決定し、新しいページが到着するように除去を行います。

オプション2:カーネルは1つ以上のプロセスを終了し、大量のメモリスペースをすぐに解放します。

2番目のオプションはパフォーマンスの面では良く見えますが(1つずつ解放するのではなく、多くのメモリページを一度に解放します)、プロセスが終了するという問題があります。それでは、私が言及した2つのオプションのうち、最新のLinuxディストリビューションを有効にするものは何ですか?具体的な状況によって異なりますか?

正確なLinuxディストリビューションによって異なる場合は、一般的な方法で回答してください。

ベストアンサー1

状況に応じて両方のオプションを使用してください。

カーネルがページを割り当てる必要があり、使用可能なページがない場合、または透かしに達した場合は、非アクティブリストからページを回収しようとします(「Inactive」検索/proc/meminfo)。ページのリサイクルに必ずしも交換が含まれるわけではありません。

  • ダーティ以外のファイルのバックアップページは削除されます(バックアップストアから復元可能)。
  • ダーティファイルベースのページはバックアップストアに書き込まれ、削除されます。
  • 独自のバックアップストアを持たない取り外し可能ページのみがスワッピングに含まれます。

OOMキラーは、上記の方法が不十分な場合にのみ介入して(複数の基準に基づいて)「最悪の」プロセスを選択して終了します。

おすすめ記事