web-dev-qa-db-ja.com

システムに3.2しか表示されないのはなぜですかGiB of RAM確かに4.0がある場合GiB

2x2 GiBスティックがRAMがインストールされています。
grubブートメニューからmemtest86を実行すると、これを確認できます。memtest86はエラーを報告しません。

ただし、実行中のUbuntu 10.04システムで使用可能なメモリをチェックする方法はどれでも、約3.2 GiBしか報告されません。

  • cat /proc/meminfo == 3320132 kB
  • System Monitor == 3.2 GiB
  • htop == 3242 MB
  • free -m == 3242 MB

誰が私のmissingRAM?

更新された情報:私は今dual-同じハードウェアでUbuntu 10.04の別のバージョンを起動しました(緊急事態のために、何ヶ月も前にインストールしたのを忘れていました):).... System Monitor...を介して3.9 GiBを報告します.

最新の/var/log/messages情報を http://Pastebin.ubuntu.com/629246/ に投稿しました

12
Peter.O

32ビットのアドレス空間とは、4GBのアドレス用のスペースがあることを意味します。理想的には、カーネルは、すべての物理メモリ、現在のタスクのすべてのメモリ、およびそれ自体のすべてのメモリをマップできることを好みます。物理メモリだけで使用可能な4GBをすべて使用すると、それは機能しません。したがって、物理メモリは、常にマップされるローメモリと、使用時にマップする必要があるハイメモリに分けられます。パッチを当てたカーネルを実行している場合を除き、ix86アーキテクチャでは、128MBのアドレス空間がカーネルコードとデータ構造に使用され、896MBが物理メモリのマッピングに使用されます(合計1GB)。

アドレス空間が総メモリよりも快適に大きくない場合のメモリ管理の複雑さに関する背景知識:

カーネルログからの抜粋:

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cdce0000 (usable)
BIOS-e820: 00000000cdce0000 - 00000000cdce3000 (ACPI NVS)
BIOS-e820: 00000000cdce3000 - 00000000cdcf0000 (ACPI data)
BIOS-e820: 00000000cdcf0000 - 00000000cdd00000 (reserved)
BIOS-e820: 00000000d0000000 - 00000000e0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
2404MB HIGHMEM available.
887MB LOWMEM available.
Zone PFN ranges:
DMA      0x00000000 -> 0x00001000
Normal   0x00001000 -> 0x000377fe
HighMem  0x000377fe -> 0x000cdce0

ここに887MBの低メモリがあります。理論上の最大値である896MBから数MBのDMAバッファ(ハードウェアデバイスとの通信に使用されるメモリのゾーン))を差し引いたものです。

物理メモリのうち、3328MBは4GB未満のアドレスにマップされ、768MBは4GBを超えるアドレスにマップされます(0x100000000〜0x130000000の範囲)。これらの768 MBにアクセスできないため、3242 MBしか利用できない理由が説明されています(4096 MBのRAMマイナス768 MBアクセス不可-9 MBのDMAバッファーマイナス75 MBカーネル自体がコードとデータに使用します。BIOSが4GBマークを超えるRAM=をマップする理由はわかりませんが、データポイントとして、これをPCから投稿しています4GBのRAMには、同様にRAM 0x100000000–0x130000000でマッピングされています。

4GBを超える物理メモリをマッピングするには、 [〜#〜] pae [〜#〜] を使用する必要があります。 PAEは小さなパフォーマンスオーバーヘッドが発生するため(特に、メモリマネージャーでより大きなデータ構造が必要になるため)、体系的に有効化されていません。デフォルトのUbuntuカーネルは、PAEサポートなしでコンパイルされています。 -generic-paeカーネルInstall linux-image-generic-pae 最大64GBのRAMにアクセスできるようにします。

TL、DR:Linuxは期待どおりに動作しています。ファームウェアはそれほど役に立ちません。 PAE対応のカーネルを入手してください。

Ubuntuのアーキテクチャがi386(32ビットバージョン)であることが原因かもしれません。あなたが実行したときの結果は何ですかuname -a

1
Jeff