Large-Page 지원

대용량 페이지 지원을 사용하면 서버 애플리케이션이 64비트 Windows에서 특히 유용한 대용량 페이지 메모리 영역을 설정할 수 있습니다. 각 큰 페이지 변환은 CPU 내에서 단일 번역 버퍼를 사용합니다. 이 버퍼의 크기는 일반적으로 네이티브 페이지 크기보다 큰 세 가지 크기입니다. 이렇게 하면 변환 버퍼의 효율성이 향상되어 자주 액세스하는 메모리의 성능이 향상될 수 있습니다.

다음 절차에서는 큰 페이지 지원을 사용하는 방법을 설명합니다.

큰 페이지 지원을 사용하려면

  1. AdjustTokenPrivileges 함수를 호출하여 SeLockMemoryPrivilege 권한을 가져옵니다. 자세한 내용은 계정에 권한 할당토큰의 권한 변경을 참조하세요.
  2. GetLargePageMinimum 함수를 호출하여 최소 큰 페이지 크기를 검색합니다.
  3. VirtualAlloc 함수를 호출할 때 MEM_LARGE_PAGES 값을 포함합니다. 크기 및 맞춤은 큰 페이지 최소값의 배수여야 합니다.

큰 페이지 메모리를 사용하는 애플리케이션을 작성할 때는 다음 고려 사항을 염두에 두어야 합니다.

  • 대용량 페이지 메모리 영역은 시스템이 오랫동안 실행된 후 각 큰 페이지의 물리적 공간이 연속되어야 하지만 메모리가 조각화되었을 수 있기 때문에 가져오기 어려울 수 있습니다. 이러한 조건에서 큰 페이지를 할당하면 시스템 성능에 큰 영향을 줄 수 있습니다. 따라서 애플리케이션은 반복된 큰 페이지 할당을 방지하고 시작 시 모든 큰 페이지를 한 번 할당해야 합니다.
  • 메모리는 항상 읽기/쓰기가 가능하며 페이지를 작성할 수 없습니다(항상 실제 메모리에 상주).
  • 정의별 작업 집합에는 페이저블 메모리만 포함되므로 메모리는 프로세스 프라이빗 바이트의 일부이지만 작업 집합의 일부가 아닙니다.
  • 대용량 페이지 할당에는 작업 제한이 적용되지 않습니다.
  • 대용량 페이지 메모리는 단일 작업으로 예약되고 커밋되어야 합니다. 즉, 이전에 예약된 메모리 범위를 커밋하는 데 큰 페이지를 사용할 수 없습니다.
  • Intel Itanium 기반 시스템의 WOW64는 이 기능을 사용하는 32비트 애플리케이션을 지원하지 않습니다. 애플리케이션을 네이티브 64비트 애플리케이션으로 다시 컴파일해야 합니다.