割り当て可能な最大サイズ

割り当て可能な最大サイズ

VmallocTotal与えられたよりも多くのメモリを割り当てることができますか/proc/meminfo

答え1

vmalloc()内部カーネル関数です。ユーザープログラムでは使用できません。ユーザプログラムのメモリ割り当てには影響しません。 VmallocTotal呼び出しカーネルコードの割り当てを制限しますvmalloc()VmallocTotal自動または手動で変更しません)。

ユーザープログラムが「割り当て」できる最大メモリサイズは、オーバーコミット設定によって異なります。 「オーバーコミット」は「メモリ割り当て」という概念となんと矛盾するので、恐ろしい引用として「割り当て」と書いています。説明は次のとおりです。使用されたキーワードで別の説明を検索できます。https://serverfault.com/questions/606185/how-does-vm-overcommit-memory-work

〜のようにカーネル文書言い換えれば、mmap()以前のシステムコールなどのシステムコールはsbrk()デフォルトでメモリを割り当てません。 「アドレス空間」を返します。書き込まれると、物理メモリは要求に応じてマッピングされます。メモリはページ(通常4096バイト)単位でマッピングされます。

関連情報