私は4 * 32GBのRAMを搭載したIntel 11700を使用しています。
4つの物理RAMスロットがいっぱいになると、BIOS htop
(システムの合計RAMを表示するためにどのコマンドを使用してもsudo lshw
関係ありませんsudo dmidecode dmesg
)に128 GBのRAMがあると表示されます。
ただし、使用可能なRAMの半分の57.2 GBしか使用できません。
私はmalloc()
Cとを使ってこれをしましたtmpfs
。前者は最終的にNULL
ポインタを返し、後者はデバイスにスペースが不足しているというメッセージを表示します。
32 GB または 64 GB の RAM モジュールを 1 つまたは 2 つしか取り付けない場合でも、RAM の約半分の 12.1 GB または 28.7 GB にしかアクセスできないということです。
ベストアンサー1
特に50%のシェアでの失敗は、malloc
厳格な割り当ての症状です。つまり障害のある過剰使用。これは次のために発生します。システムvm.overcommit_memory
コマンド、そして見ることができる
sysctl vm.overcommit_memory
2が表示されている場合、カーネルはオーバーコミットを防ぎ、mmap
メモリが実際に使用されているときではなく、割り当て時にヒープのサイズ変更などが失敗します。エクスチェンジプラスに設定された制限vm.overcommit-kbytes
またはvm.overcommit-ratio
(物理メモリの割合)
希望の動作を得るには、vm.overcommit_memory
0 に設定します。