다음을 통해 공유


레지스트리 스토리지 공간

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

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

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

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

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

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

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

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

체계 시스템 하이브의 최대 크기
x86 기반 시스템 실제 메모리의 50%, 최대 400MB sp2를 사용하는 Windows Server 2003, WINDOWS Server 2003 SP1, Windows Server 2003 및 Windows XP를: 최대 200MB의 실제 메모리 25%입니다.
x64 기반 시스템 실제 메모리의 50%, 최대 1.5GB windows Server 2003 SP2를: 시스템 메모리의 25%, 최대 200MB.
sp1, Windows Server 2003 및 Windows XP 64비트 버전: 32MB를 사용하는 Windows Server 2003을.
Intel Itanium 기반 시스템 실제 메모리의 50%, 최대 1GBWindows 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가 될 수 있습니다.