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


12

RAMの2x2 GiBスティックがインストールされています。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

不足しいる RAM は誰が持ってますか?

更新された情報:同じハードウェアでUbuntu 10.04の別のバージョンにデュアルブートしたところです(非常用に何ヶ月も前にインストールしたのを忘れていました):)... 3.9 GiBを報告しSystem Monitorます...

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


どのようなカーネルを使用していますか?「bigmem」または「x86-64」を使用しない限り、システムにすべてのRAMが表示されない場合があります。また、一部のBIOSオプションは、合計RAMの可視性に影響します。/ var / log / messagesログ(最初の部分)を使用して、メモリ領域がどのようにマップされたかを確認します。
mbaitoff 2011年

私はどのように解釈するかわかりません/var/log/messagesが、私はここに私の最新の情報を掲載しました:pastebin.ubuntu.com/629246 ...多分誰かが:)それのヘッド・オア・尾行うことができます
Peter.Oを

3.2Gbで報告されたシステムからのログですか、3.9Gbで報告されたシステムからのログですか?
mbaitoff 2011年

ログの行61、62は3.2Gbが利用可能であることを示しています。
mbaitoff 2011年

4Gbマシンにx86-64(64ビット)がインストールされたUbuntu 10.04を持っています。それは3964 Mb( 'free -m')を報告するので、2番目のセットアップはRAM容量を正しく検出します。2番目のシステムにインストールされているカーネルの種類を確認してください。
mbaitoff 2011年

回答:


19

32ビットのアドレス空間は、4 GBのアドレス用のスペースがあることを意味します。理想的には、カーネルは、すべての物理メモリ、現在のタスクのすべてのメモリ、およびそれ自体のすべてのメモリをマップできることを望んでいます。物理メモリだけで使用可能な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にアクセスできません。これは、3,242 MBしか利用できない理由を説明しています(4096 MBのRAMから768 MBにアクセスできず、9 MBのDMAバッファーを差し引いて、カーネル自体がコードとデータに使用している75 MB)。BIOSが4 GBマークを超えるRAMをマップする理由はわかりませんが、データポイントとして、RAMが0x100000000–0x130000000に同様にマップされている4 GBのRAMを搭載したPCからこれを投稿しています。

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

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


まあ、それは簡単でした...ありがとうGilles :) ...ログを理解することは間違いなく難しいです!...私はインストールしましたlinux-image-2.6.32-32-generic-pae、そしてhtop今報告します3990 MiB
Peter.O

1
マシンは、RAMを4GBマークより上にマッピングして、ビデオRAMのようなハードウェアメモリを4GBマークの下に配置して、PAE非対応の32ビットカーネルで使用できるようにします。
psusi 2011年

私はあなたのすべてのGBがGiBであるべきだと思いますか?
weynhamz

@TechliveZhengこれは物理サイトではなくコンピューター技術サイトです。などすべての私のMB、GB、実際のMIBなど、ジブ、ある
ジル「SO-停止されて悪」

1

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


uname -a... Linux DT9400 2.6.32-32-generic#62-Ubuntu SMP Wed Apr 20 21:54:21 UTC 2011 i686 GNU / Linux ...しかし、私が質問の「Updated info:」で言及したように、別の10.04 32ビットデュアルブートインストールでは3.9 Gibが表示されます。両方のデュアルブートシステムは同じCDからインストールされましたが、現在異なるカーネルを実行しており、異なるプログラムがインストールされています...ところで、これは最近の出来事ではありません。これは、何ヶ月も3.2ジブを示してきた...
Peter.O

明らかに32ビットカーネル( 'i686')を実行しています。ちなみに、一部のアドレス空間はハードウェアによって予約されているため、3.9Gbはすでに4Gbを意味します。
mbaitoff '19年

はい、mbaitoffに感謝します。少し歩き回るとメモリが増えると思いますが、0.8 GiBは多すぎると思うので、ここで何が行われているのかを調べたいと思います。
Peter.O

AFAIK Ubuntuは、x86でも大量のRAMを使用できるPAEカーネルをインストールできます
Anton Barkovsky

3
paeカーネル(linux-generic-paeおよびlinux-headers-generic-pae)をインストールし、必要に応じて一般的なカーネルを削除するだけでよいと思います。
アントンバルコフスキー2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.