RAM容量が何であれ、合計RAM容量の半分にのみアクセスできるのはなぜですか?

RAM容量が何であれ、合計RAM容量の半分にのみアクセスできるのはなぜですか?

私は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_memory0 に設定します。

おすすめ記事