可能性のある複製:
buntuが3GBのRAMしか表示しないのはなぜですか?
数日前にDell XPSを購入しました。 64ビットバージョンのubuntuをインストールし、カーネルを次のように変更しました。
3.2.0-29-generic #46+kamal5~DellXPS-Ubuntu SMP Sun Jul 29 18:49:08 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
私のシステムでは、4GBのRAM instedが3.2GB(3275MB)しか見られません。ストックのubuntuカーネルを確認しましたが、状況は同じでした。グラフィックカードはIntel HD3000です。
pmd@daftbook:~$ free -m
total used free shared buffers cached
Mem: 3275 2580 695 0 321 1100
-/+ buffers/cache: 1158 2117
Swap: 2047 0 2047
Lshwから:
*-memory
description: System Memory
physical id: 4
slot: System board or motherboard
size: 4GiB
*-bank:0
description: DIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: HT2SCRCH
vendor: Hynix/Hyundai
physical id: 0
serial: 00000000
slot: ChannelA-DIMM0
size: 2GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:1
description: DIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: HT2SCRCH
vendor: Hynix/Hyundai
physical id: 1
serial: 00000000
slot: ChannelB-DIMM0
size: 2GiB
width: 64 bits
clock: 1333MHz (0.8ns)
使用可能表示されるメモリの量に影響する多くの要因があります。まずWindowsについてお話しましょう。次に、Linuxについて詳しく説明します。
Windowsでは、X量のメモリがある場合(32ビットまたは64ビットのどちらでも構いません)、システムはシステムの正しい機能のためにその割合を予約します。ハードウェア、統合デバイス(統合ビデオカード、サウンドカード、ネットワークカードなど)、接続されているデバイスの量、Windowsのバージョンなどに応じて、予約される量は変わります。場合によっては、Windows XPで4GBのPCを使用すると、3.5GBしか使用できないことがわかります。他の場合には、3.2GB、3.1GB、3.0GB、または私が見た最悪の場合は2.8GBしか表示されません。 Windows 7では、同じ予約済みメモリ量はハードウェアとソフトウェアによって異なり、3.0GBから3.7/3.8GBの使用可能な最大RAMに変わります。 RAMのこの利用可能な量は、実行するプログラムが使用するものであり、システムが正しく動作するために必要なメモリの一部を計算して予約した後に残されるメモリです。
このメモリは、通常、ユーザーアプリケーションとシステム用に予約されたメモリの間で交換されません。
Linuxでも同じです。システムがロードされ、すべてが可能な限りスムーズに機能するために必要なメモリ量が必要です。 512MBを搭載している場合、メモリ不足に気付くため、システムは多くを予約しません。 1GBまたは2GBがある場合、予約された量は大きくなります。 32ビットの制限は4GBであり、そこから200MB〜1GBのRAM(ハードウェアまたはソフトウェアによって異なります)が予約されるため、すべてがスムーズに実行できます。したがって、3.0GBから3.8GBの合計使用可能メモリが残っています。
さて、システム用の明らかな予約メモリとは別に、実際にはさらに多くのBIOS /ハードウェアオプションがあります。最も一般的なのは、統合ビデオカードに割り当てるメモリの量です。 2MBからクールな1.5GBまでの範囲が可能です。たとえば、ビデオカードに1GBが割り当てられている場合、つまり1GBの場合、使用可能なメモリの合計には表示されません。サウンドカードは少量のメモリを使用しますが、それでもメモリを使用します。ネットワークカード、キャプチャデバイス、Webカメラなども同様です。
それらをすべて合計すると、合計available使用する一般的なプログラム(firefox、gimp、empathy、libreofficeなど)のメモリ量が得られます。
したがって、Ubuntuが64ビットシステムの有無にかかわらずメモリを正しく読み取っていないかどうかの問題ではなく、システムに正しく動作するのに十分なメモリがあり、ユーザーアプリに十分であるかどうかに関する問題です。ご覧のとおり、Ubuntuはシステムで800MBを、アプリで使用するために3.2GBを消費しました。両方ともプロセスでメモリを共有する必要はありません。メモリ内に独自のユーザースペースがあるため、これによりアプリの速度とロード時間が向上します。問題は、システムが必要とするメモリの量があなたが持っているメモリの量よりも大きく、その瞬間にアプリを開きたい場合です。メモリを共有する必要があるため、スワップ/仮想メモリを使用する必要があり、読み込み時間が遅くなります。
これは、3GBラップトップの端末出力です。
exodus@exodus:~$ free -m
total used free shared buffers cached
Mem: 2898 1186 1711 0 117 569
-/+ buffers/cache: 499 2398
Swap: 3837 0 3837
私の例と例からわかるように、sharedメモリは必要ありません。これは、そのコマンドを実行した瞬間に必要なメモリよりもはるかに多くのメモリがあるためです。システムにはメモリがあり、アプリにはメモリがあります。
ご覧のとおり(私の例ではUbuntu 12.04 32ビットを使用)、システムは約120MBしか使用していません。しかし、ここを見てください:
cyrex@cyrex:~$ free -m
total used free shared buffers cached
Mem: 14696 1744 12952 0 447 730
-/+ buffers/cache: 533 3318
Swap: 254 0 254
この場合、16GB RAMがあり、Ubuntu 32ビットもシステムに約1.5GBを使用しています。残りのアプリ用に約12.5GBを提供します。 Windows 7 64BITを搭載した同じシステムでは3.5GBが必要です。メモリが12.4GB残っているのを見ると常に表示されます。そのため、システムとハードウェアに応じて、予約された(または盗まれた^^)量は異なります。
お役に立てれば。