일반 리눅스 32bit 에서 8GB 이상 잡기 위해서는 어떻게 해야하나요?

trymp의 이미지

일반적인 리눅스에서 (centOS 나 fedora) 같은 것에서

32bit 인 경우에 하드웨어 메모리가 8GB 이상인 경우

이 8GB를 모두 인식하려면 어떻게 해야 하나요?

커널 빌드를 다시 해야 하나요? 아니면 64bit 로 바꾸어야 하나요?

알려주시면 감사하겠습니다.

windowsprogrammer의 이미지

64비트를 쓰셔야 합니다.

bushi의 이미지

sudo yum install -y kernel-PAE
sudo reboot

익명 사용자의 이미지

32bit에서 이 설정을 사용한다고, 64bit 운영체제 처럼 native하게 8GB 메모리를 모두 쓸 수는 있는 건가요 ?

이 설정은 그냥 눈속임(?) 아닐까요?

32bit의 '메모리 어드레스 한계'가 있는데, 단지 이 설정 하나로 어떻게 32bit 운영체제에서 '8GB 메모리 전체'를 '64bit 운영체제에서처럼 쓸 수 있다'는 건지요?

blkstorm의 이미지

PAE를 이용하면 물리적으로 64GB까지 어드레싱이 가능합니다. OS자체가 32비트이기 때문에

한 프로세스가 갖는 주소공간은 4GB로 한정되지만, OS에서 64GB까지 인식하고 활용할 수 있습니다.

다만, 어떤 디바이스 드라이버들에서 DMA 문제(?)때문에 오류가 발생한다는 이야기를 들은

기억이 있습니다. 이부분은 저도 잘 모르겠습니다. PAE를 사용해보기도 전에 64비트로 갈아타버려서

테스트해볼 기회가 없었네요.

익명 사용자의 이미지

이 "PAE"라는 것이 혹시 예전 MS-DOS 시절의 익스텐디드 나 익스팬디드 메모리 같이 '페이징 접근 방식', 뭐 이런 것과 비슷한 원리인가요?

pastime의 이미지

*한 프로세스* 내에서는 당연히 주소 공간의 한계로 인해
4G (커널 영역을 빼면 순수하게는 3G겠지만..) 이상을 사용할 수 없는 것이 사실입니다.

하지만 4G (혹은 3G) 이하의 메모리를 대부분 사용하는 프로세스 (memory hog?)가 *여러 개* 있다면
PAE를 통해 최대한 많은 물리 메모리를 확보하는 것이 시스템 성능에 도움이 될 것입니다.

첨언하자면 물론 커널도 native하게(?) 8G의 메모리를 아무런 제약없이 접근하지는 못할 것입니다.
다만 프로세스가 메모리 할당을 요청한 경우 시스템에 존재하는 4G의 이상의 물리 메모리를
프로세스에게 할당해 줄 수 있는 방법을 마련해 두는 것입니다.

kyiimn의 이미지

별.. 쓸데없는 얘기 이긴한데...
$ sudo yum install -y kernel-PAE
라고 하는건.. 단지.. 이 설정(!)이 아니라...
운영체제의 근간(커널)을 흔드는 겁니다.. ㅡㅡ;;;

kalstein의 이미지

64비트로 쓰시는게 좋을겁니다.
32비트 모드에서 PAE이용하면, OS는 더 넓은 메모리를 쓰지만, 어차피 어플리케이션은 동일하게 4GB로 제한되지않나요?

더불어 32비트 모드로 PAE 쓰시면, IO가 상당히 느려지는것으로 알고있습니다.


------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/

익명 사용자의 이미지

^^