다음을 통해 공유


캐시 및 메모리 관리자 개선 사항

이 항목에서는 Windows Server 2012 및 2016의 캐시 관리자 및 메모리 관리자 개선 사항에 대해 설명합니다.

Windows Server 2022의 캐시 관리자 개선 사항

캐시 관리자는 이제 NUMA를 인식하므로 시스템이 NUMA 경계를 넘어 데이터 이동을 방지하는 데 더 적합합니다. 다른 NUMA 노드의 NUMA 노드에서 메모리 및 기타 커널 리소스로의 액세스를 방지하면 많은 오버헤드가 추가됩니다. 캐시 관리자 NUMA를 인식하게 함으로써 이러한 NUMA 간 홉을 제거하여 다중 노드 구성에서 실행되는 캐시된 IO 워크로드를 최적화했습니다.

Windows Server 2019의 캐시 관리자 개선 사항

PMEM(영구 메모리) 스토리지에 대한 제로 복사본 지원이 추가되었습니다. 영구 메모리에 대한 자세한 내용은 영구 메모리 이해 및 배포를 참조하세요. DAX(직접 액세스) 모드에서 PMEM은 메모리처럼 작동하여 대기 시간이 가장 짧습니다. 여기서 추가 데이터 복사본을 제거하고 파일 시스템 미니 필터 및 스토리지 스택에서 많은 오버헤드를 무시합니다. 이 모드는 NTFS에서만 파일 시스템으로 작동합니다.

Windows Server 2016의 캐시 관리자 개선 사항

또한 캐시 관리자는 진정한 비동기 캐시된 읽기에 대한 지원을 추가했습니다. 이렇게 하면 비동기 캐시된 읽기에 크게 의존하는 경우 애플리케이션의 성능이 향상될 수 있습니다.  대부분의 기본 제공 파일 시스템은 한동안 비동기 캐시 읽기를 지원해 왔지만 스레드 풀 및 파일 시스템의 내부 작업 큐 처리와 관련된 다양한 디자인 선택으로 인해 성능 제한이 있는 경우가 많았습니다.  커널에 적합한 지원을 통해 캐시 관리자는 이제 파일 시스템의 모든 스레드 풀 및 작업 큐 관리 복잡성을 숨기므로 비동기 캐시된 읽기를 보다 효율적으로 처리할 수 있습니다. Cache Manager에는 병렬 처리를 최대화하기 위해 각 (시스템 지원 최대) VHD 중첩 수준에 대해 하나의 제어 데이터 구조 집합이 있습니다.

Windows Server 2012의 캐시 관리자 개선 사항

순차적 워크로드에 대한 미리 읽기 논리를 읽기 위한 캐시 관리자 개선 사항 외에도 SMB와 같은 파일 시스템 드라이버가 미리 읽기 매개 변수를 변경할 수 있도록 새 API CcSetReadAheadGranularityEx 가 추가되었습니다. 단일 대규모 미리 읽기 요청을 보내는 대신 여러 개의 작은 크기의 미리 읽기 요청을 전송하여 원격 파일 시나리오의 처리량을 높일 수 있습니다. 파일 시스템 드라이버와 같은 커널 구성 요소만 파일별로 이러한 값을 프로그래밍 방식으로 구성할 수 있습니다.

Windows Server 2012의 메모리 관리자 개선 사항

페이지 결합을 사용하도록 설정하면 서버의 메모리 사용량이 줄어들 수 있으며, 여기에는 동일한 콘텐츠가 있는 많은 비공개 페이지가 있습니다. 예를 들어 동일한 메모리 집약적 앱의 여러 인스턴스를 실행하는 서버 또는 매우 반복적인 데이터로 작동하는 단일 앱은 페이지 결합을 시도할 수 있는 좋은 후보일 수 있습니다. 페이지 결합을 사용하도록 설정하면 CPU 사용량이 증가합니다.

다음은 페이지 결합이 많은 이점을 제공하지 않는 서버 역할의 몇 가지 예입니다.

  • 파일 서버(대부분의 메모리는 프라이빗이 아니므로 결합할 수 없는 파일 페이지에서 사용됨)

  • AWE 또는 큰 페이지를 사용하도록 구성된 Microsoft SQL Server(대부분의 메모리는 비공개이지만 페이지 불가능)

페이지 결합은 기본적으로 사용하지 않도록 설정되지만 Enable-MMAgent Windows PowerShell cmdlet을 사용하여 사용하도록 설정할 수 있습니다. 페이지 결합이 Windows Server 2012에 추가되었습니다.