回答:
システムは残りの20%で何をしますか?
カーネルは、残りの物理メモリを独自の目的(内部構造、テーブル、バッファ、キャッシュなど)に使用します。メモリのオーバーコミットメント設定は、ユーザーランドアプリケーションの仮想メモリ予約を処理します。カーネルは仮想メモリを使用せず、物理メモリを使用します。
そもそもなぜこのパラメータが必要なのですか?
overcommit_ratio
パラメータは、彼らが実際に(または少なくともTRY)メモリにアクセスする際、合理的に将来、すなわち、それらのために利用できるようになります何よりも多くの仮想メモリを確保するために、アプリケーションを防止するために設計、実装の選択です。
overcommit_ratio
50%に設定することは、Linuxカーネル開発者によって妥当なデフォルト値と見なされています。これは、カーネルが物理RAMの50%以上を使用する必要がないことを前提としています。あなたの走行距離は変わるかもしれません、それが調整可能な理由です。
常に100%に設定すべきではないのはなぜですか?
これを100%(または「高すぎる」値)に設定しても、カーネルが0%(または少なすぎる)のRAMを使用すると想定できないため、オーバーコミットを確実に無効にすることはできません。
カーネルが要求するすべての物理メモリをとにかく先取りする可能性があるため、アプリケーションのクラッシュを防ぐことはできません。