overcommit_memoryが2に設定されていても、oomが引き続き発生するのはなぜですか?

overcommit_memoryが2に設定されていても、oomが引き続き発生するのはなぜですか?

2:頻繁に確認し、過度に投資しないでください。

モード2(Linux 2.6以降で利用可能)では、割り当て可能な仮想アドレス空間の合計(/ proc / meminfoのCommitLimit)は次のように計算されます。

          CommitLimit = (total_RAM - total_huge_TLB) *
                        overcommit_ratio / 100 + total_swap

IIUCではecho 2 > /proc/sys/vm/overcommit_memoryオーバーコミットが無効になっているため、物理物理メモリ(RAM +スワップ)よりも多くの仮想メモリ割り当てを許可しないでください。ただし、ファジーテスト三位一体を使用すると、まだメモリ不足が報告され、デスクトップ環境が終了します。

私が推測する1つの考えられる理由は、always check, never overcommit各プロセスによって割り当てられたメモリが決して超過しないことですCommitLimit。ただし、複数のプロセスが同時にメモリを割り当て、合計を超える傾向がありますCommitLimit。私の推測は正しいですか?

ベストアンサー1

おすすめ記事