달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2009. 2. 17. 12:46

/3GB /PAE AWE 정리 Performance2009. 2. 17. 12:46

/3GB

응용 프로그램에서 사용하는 4GB의 가상 메모리는 커널 모드 2GB, 사용자 모드 2GB로 쓰여진다.

(사용자 모드 주소: 0x00000000 ~ 0x7FFFFFFF, 커널 모드 주소: 0x80000000 ~ 0xFFFFFFFF)

 

boot.ini /3GB 파라미터를 사용하면 커널 메모리 1GB, 사용자 모드 3GB로 사용된다.

(사용자 모드 주소: 0x00000000 ~ 0xBFFFFFFF, 커널 모드 주소: 0xC0000000 ~ 0xFFFFFFFF)

 

LARGE_ADDRESS_AWARE 플래그가 설정된 응용 프로그램만 이 늘어난 1GB의 사용자 메모리 공간을 사용할 수 있으며 그렇지 않은 응용 프로그램은 영향 받지 않는다.

LARGE_ADDRESS_AWARE 옵션이 설정되어 있는지 여부는 Visual Studio dumpbin.exe /HEADERS 명령으로 확인 가능하다.

 

1GB로 줄어든 커널 메모리 공간으로 인해 시스템 캐시(System PTE, 페이징 풀, 비 페이징 풀 등)의 공간이 현저하게 줄어들게 된다.

 

응용 프로그램에서 특별히 권고하지 않는 한 일반적으로 /3GB 옵션은 권장되지 않는다.

예를 들어, SQL Server의 경우 /3GB 옵션이 권장되나 파일 서버의 경우에는 사용하지 않는 것을 권장한다.

 

 

/PAE (Physical Address Extension)

32bit 운영체제 메모리 주소의 한계인 4GB(2^32) 이상의 실제 메모리 공간에 접근하기 위해 사용된다.

4GB 이상(36bit: 64GB)의 메모리를 사용하기 위해 운영체제 커널의 메모리 변환 스키마가 변경된다.

Boot.ini /PAE 옵션은 운영체제를 PAE 커널로 변경시킨다.

(단일 프로세서 서버의 경우 ntkrnlpa.exe, 다중 프로세서 서버의 경우 ntkrnlpamp.exe)

 

/PAE 옵션이 응용 프로그램이 사용하는 가상 메모리 공간인 4GB를 늘리는 것은 아니며 응용 프로그램의 가상 메모리 공간은 여전히 4GB로 제한된다.

 

 

AWE (Address Windowing Extension)

/PAE 옵션이 프로세서가 36bit의 메모리 공간을 사용할 수 있게 해주나 응용 프로그램은 여전히 4GB의 가상 메모리 공간을 사용한다.

이 응용 프로그램이 사용하는 4GB의 가상 메모리 공간을 확장하기 위한 API이며 대표적으로 SQL Server가 있다.

 

, AWE를 사용하는 응용 프로그램은 커널 메모리 공간 2GB와 사용자 메모리 공간 2GB 이상을 사용할 수 있게 된다.

:
Posted by 커널64