류짱:Beyond MySelf

Windows Server 2008 x86 환경에서 4G 보다 많은 메모리를 사용하는 방법 본문

Microsoft/Windows Platform

Windows Server 2008 x86 환경에서 4G 보다 많은 메모리를 사용하는 방법

リュちゃん 2011. 11. 8. 22:31

Windows server 2003에서는 물리적 메모리를 4G 이상 사용 할 때 boot.ini를 수정하여 PAE 매개 변수를 지정 하였습니다만 Windows server 2008에서는 더 이상 boot.ini가 존재하지 않기 때문에 bootmgr이라는 파일이 부팅을 관리 하며 해당 파일은 bcdedit이라는 명령어를 통해서만 확인 및 수정이 가능합니다.

[PAE 매개 변수란]

/PAE 매개 변수는 PAE(Physical Address Extension)를 활성화합니다. 이 매개 변수는 Windows 커널의 PAE 버전을 로드하도록 시스템에 지시합니다. PAE는 페이지 변환 계층 구조를 사용하여 32비트 주소 지정이 설정된 시스템이  4GB 이상의 실제 메모리를 처리할 수 있도록 하는 주소 지정 전략입니다

Physical Address Extension
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366796(v=vs.85).aspx


[How to enable PAE on Windows Server 2008 x86]

관리자 권한으로 명령프롬프트를 실행 후 다음 명령어를 실행 합니다.

BCDEDIT /SET PAE ForceEnable

옵션이 제대로 설정 되었는지 확인 하기 위해서는 명령 프롬프트에서 bcdedit명령어를  다시 입력 하시고 아래와 같이 pae forceenable항목이 설정 되어 있는지 확인 하시면 됩니다.


참고로 PAE 을 지정하지 않았음에도 4G 이상의 물리적 메모리가 보이는 경우도 있습니다.

1.
시스템 등록 정보에서 데이터 실행 방지가 실행 되고 있을 경우
2. 시스템이  H/W BIOS에서 물리적 메모리를 쿼리 할 수 있을 경우

그러나 정확하게 OS가 정확하게 4G이상의 물리적 메모리를 인식 하기 위해서는 반드시 PAE 옵션을 지정 하여야 합니다.

[PAE 옵션의 제약 사항]

PAE 을 이용해서는 CPU가 인식 가능한  물리적 메모리 주소 사이즈에 따라 다르지만  최대 128G까지의 메모리가 인식이 가능 합니다.
하지만 windows server 2008 Enterprise 서버의 경우 아래 언급 하신 것처럼 Max 메모리가 64G입니다.
32bit 시스템의 경우 PAE 옵션을 이용해서  물리적으로 큰 메모리를 사용 할 경우 시스템의 과부하가 동반 될 수 있으며 프로그래머는 AWE(address windowing extension) API를 사용해야 합니다.
그러나 무엇보다 결정적으로 PAE 옵션을 쓰더라도 32bit 아키텍처의 한계로 인해 가상 메모리 주소 공간을 4G 밖에 할당 받지 못하므로 많은 메모리 및 프로세스를 실행 해야 하는 서버의 환경에는 부적합 할 수 있습니다.

만약 구축하려는 시스템의 어플리케이션이 64bit 환경에서 실행 될 수 있는 상황이라면 반드시 가장 최신 OSWindows server 2008R2를 사용 할 것을 권장 합니다.

[참고 자료]
64-비트 Windows 32-비트 Windows의 메모리/CPU 비교

일반적인 메모리 한계

32-비트

64-비트

총 가상 주소 공간

4 GB

16 TB

32-비트 프로세스 당 가상 주소 공간

2 GB (시스템 부팅 시 /3GB 스위치를 사용하면 3 GB)

/LARGEADDRESSAWARE로 컴파일 된 경우 4 GB
(그렇지 않으면 2 GB)

64-비트 프로세스 당 가상 주소 공간

해당 사항 없음

8 TB

페이지 된 풀

47 MB

128 GB

페이지 되지 않은 풀

256 MB

128 GB

시스템 PTE

660 MB ~ 900 MB

128 GB

실제 메모리 및 CPU 한계

32-비트

64-비트

Windows Server 2003, Standard Edition

4 GB / 1 ~ 4 CPU

32 GB / 1 ~ 4 CPU

Windows Server 2003, Enterprise Edition

64 GB / 1 ~ 8 CPU

1 TB / 1 ~ 8 CPU

Windows Server 2003, Datacenter Edition

64 GB / 8 ~ 32 CPU

1 TB / 8 ~ 64 CPU

4GB RAM 조정 기능 및 실제 주소 확장(PAE) 매개 변수에 대한 설명
http://support.microsoft.com/kb/291988/ko

Windows 2000 Windows Server 2003에서 대형 메모리 지원 기능을 사용할 수 있다
http://support.microsoft.com/kb/283037

Windows Vista 또는 Windows Server 2003에서 예상보다 작은 메모리를 보고할 수 있다
http://support.microsoft.com/kb/929580

감사합니다.