다음을 통해 공유


레지스트리 스토리지 공간

애플리케이션이 레지스트리에 저장할 수 있는 데이터의 유형과 크기에 대한 기술적 제한은 거의 없지만 시스템 효율성을 높이기 위한 몇 가지 실용적인 지침이 있습니다. 애플리케이션은 구성 및 초기화 데이터를 레지스트리에 저장하고 다른 종류의 데이터를 다른 곳에 저장해야 합니다.

일반적으로 하나 또는 두 킬로바이트(K) 이상으로 구성된 데이터는 값으로 저장되지 않고 레지스트리의 키를 사용하여 파일로 저장되고 참조되어야 합니다. 레지스트리에서 대량의 데이터를 복제하는 대신 애플리케이션은 데이터를 파일로 저장하고 파일을 참조해야 합니다. 실행 가능한 이진 코드는 레지스트리에 저장해서는 안 됩니다.

값 항목은 키보다 훨씬 적은 레지스트리 공간을 사용합니다. 공간을 절약하려면 애플리케이션에서 비슷한 데이터를 구조체로 그룹화하고 각 구조체 멤버를 별도의 키로 저장하지 않고 구조체를 값으로 저장해야 합니다. (이진 형식으로 데이터를 저장하면 애플리케이션이 호환되지 않는 여러 형식으로 구성된 하나의 값으로 데이터를 저장할 수 있습니다.)

레지스트리 파일의 보기는 페이징된 풀 메모리에 매핑됩니다.

32비트용 Windows Server 2008, 32비트용 SP1이 있는 Windows Vista, Windows Vista, Windows Server 2003, Windows XP: 레지스트리 파일의 보기는 컴퓨터 캐시 주소 공간에 매핑됩니다. 따라서 레지스트리 데이터의 크기에 관계없이 4MB(메가바이트)를 초과하여 요금이 청구되지 않습니다.

레지스트리 하이브의 최대 크기는 시스템 하이브를 제외하고 2GB입니다.

WINDOWS Server 2003 SP1, Windows Server 2003 및 Windows XP: 시스템 할당량이 실제 최대 크기에 영향을 줄 수 있지만 페이징된 풀 메모리 및 디스크 공간에서 하이브가 사용할 수 있는 총 공간 양에는 명시적 제한이 없습니다. 레지스트리 하이브의 최대 크기는 Windows Server 2003 SP2(서비스 팩 2)부터 2GB로 제한되었습니다.

시스템 하이브의 최대 크기는 다음 표와 같이 실제 메모리에 의해 제한됩니다.

시스템 시스템 하이브의 최대 크기
x86 기반 시스템 실제 메모리의 50%, 최대 400MB WINDOWS Server 2003 SP2, Windows Server 2003 SP1, Windows Server 2003 및 Windows XP: 실제 메모리의 25%, 최대 200MB
x64 기반 시스템 실제 메모리의 50%( 최대 1.5GB) WINDOWS Server 2003 SP2: 시스템 메모리의 25%, 최대 200MB
WINDOWS Server 2003 SP1, Windows Server 2003 및 Windows XP 64비트 버전: 32MB.
Intel Itanium 기반 시스템 실제 메모리의 50%( 최대 1GB) Windows Server 2008, Windows Vista, Windows Server 2003 SP2, Windows Server 2003 SP1, Windows Server 2003 및 Windows XP 64비트 버전: 32MB.

Windows 2000

레지스트리 데이터는 사용하지 않을 때 디스크에 쓸 수 있는 시스템 데이터에 사용되는 실제 메모리 영역인 페이징 풀에 저장됩니다. RegistrySizeLimit 값은 모든 애플리케이션의 레지스트리 데이터에서 사용할 수 있는 페이징 풀의 최대 크기를 설정합니다. 이 값은 다음 레지스트리 키에 있습니다.

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control

기본적으로 레지스트리 크기 제한은 페이징 풀의 25%입니다. (페이징 풀의 기본 크기는 32MB이므로 8MB입니다.) 시스템은 RegistrySizeLimit 의 최소값이 4MB이고 최대값이 PagedPoolSize 값의 약 80%임을 확인합니다. 이 항목의 값이 페이징 풀 크기의 80%보다 큰 경우 시스템은 레지스트리의 최대 크기를 페이징된 풀 크기의 80%로 설정합니다. 이렇게 하면 레지스트리에서 프로세스에 필요한 공간을 사용할 수 없습니다. 이 값을 설정해도 페이징된 풀의 공간이 할당되지 않으며 필요한 경우 공간을 사용할 수 있다는 보장도 없습니다.

페이징 풀 크기는 다음 레지스트리 키의 PagedPoolSize 값에 의해 결정됩니다.

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control
            SessionManager
               MemoryManagement

레지스트리의 현재 및 최대 크기를 확인하는 방법의 예는 레지스트리 크기 확인을 참조하세요.

최대 페이징 풀은 약 300,470MB이므로 레지스트리 크기 제한은 240-376MB입니다. 그러나 /3GB 스위치를 사용하는 경우 최대 페이징 풀 크기는 192MB이므로 레지스트리는 최대 153.6MB가 될 수 있습니다.