Ubuntu는 Ubuntu 64비트에서 3.1GB의 RAM만 감지합니다.

Ubuntu는 Ubuntu 64비트에서 3.1GB의 RAM만 감지합니다.

저는 우분투 리눅스 64비트를 사용하고 있습니다. 최근에 저는 Ubuntu 32비트를 사용하고 있었는데 명령을 통해 grep --color=always -iw lm /proc/cpuinfo내 프로세서가 64비트를 지원한다는 사실을 발견했습니다. 명령의 출력은 다음과 같습니다.

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr

그러나 디스크를 지우고 Ubuntu 11.10 64비트를 설치한 후에도 시스템은 여전히 ​​3.1GB의 RAM만 감지합니다. BIOS에서 3.1이 아닌 4GB의 RAM이 설치되어 있는지 확인했습니다. Ubuntu 64비트가 3.1GB RAM만 감지하는 이유는 무엇입니까?

출력uname -a

aaron@Aarons-Ubuntu-Computer:~$ uname -a
Linux Aarons-Ubuntu-Computer 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

출력free -m

aaron@Aarons-Ubuntu-Computer:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3136       2960        175          0        233       1996
-/+ buffers/cache:        730       2405
Swap:         3189          0       3189

답변1

현재 사용 중인 CPU(및 판매되는 거의 모든 새 CPU)의 약 80%가 64비트 Ubuntu를 지원하므로 이는 놀라운 일이 아닙니다. 대부분의 사람들의 하드웨어에서 실행할 수 있는 64비트 Ubuntu를 기본값(현재는 32비트가 제안되는 방식)으로 제안할 계획이 있습니다.

그럼에도 불구하고 커널에서 볼 수 있는 총 메모리와 초기 할당 방법에 대한 보고서를 보려면 다음을 수행할 수 있습니다.

dmesg |grep "Memory: "

그러면 다음과 같은 줄이 표시됩니다.

[    0.000000] Memory: 3823988k/4849664k available (6109k kernel code, 874468k absent, 151208k reserved, 4876k data, 984k init)

내 시스템에는 4GB의 RAM이 설치되어 있지만 보고된 총 용량은 4.7GB 정도입니다(비디오 카드, PCI 및 IO 장치 등의 주소 공간으로 인해 BIOS가 더 많은 메모리를 보고하는 것으로 추측됩니다). 이러한 문제로 인해 결국 애플리케이션에는 3.6GB만 사용할 수 있습니다.

"부족한" 메모리 양에 주목하세요. 이는 "메모리 맵의 메모리 구멍으로 인해 손실된 메모리 주소 지정 공간을 반영합니다. 일반적으로 PCI 공간, IO 등에 구멍이 남아 있습니다. 모든 공급업체 모델 시스템은 다르며 모든 시스템에는 메모리가 없으면 다른 값이 보고됩니다."

또한 fossfreedom이 지적한 질문을 보면 주소 지정 공간이 어디에 사용될 수 있는지에 대한 자세한 설명이 제공됩니다.

관련 정보