다음을 통해 공유


수정: Windows의 ReFS에서 메모리 사용량이 많습니다.

이 문서에서는 Windows의 ReFS(복원 파일 시스템)에서 발생하는 메모리 압력 및 성능 문제에 대한 솔루션을 제공합니다.

적용 대상: Windows 10 - 모든 버전, Windows Server 2016, Windows Server 2019
원래 KB 번호: 4016173

증상

Windows 10, Windows Server 2016, Windows Server 2019, Windows Server, 1903 또는 Windows Server 버전 1909를 실행하는 컴퓨터에서 메모리 사용량이 많은 것을 알 수 있습니다.

원인

메타데이터에 대한 복원력을 높이기 위해 Windows Server 2016의 ReFS(복원 파일 시스템)는 모든 메타데이터 업데이트에 대해 쓰기 시 할당 의미 체계를 사용합니다. 즉, ReFS는 메타데이터를 현재 위치로 업데이트하지 않습니다. 대신 새로 할당된 지역에 모든 쓰기를 만듭니다.

그러나 쓰기에 할당하면 ReFS에서 현재 위치 파일 시스템보다 볼륨의 새 지역에 더 많은 메타데이터 I/O를 발급합니다. 또한 ReFS는 블록 캐싱 논리를 사용하여 RAM에서 메타데이터를 캐시합니다. 파일 캐싱 논리만큼 리소스 효율이 높지 않습니다.

ReFS 블록 캐싱 논리와 쓰기 시 할당 의미 체계를 함께 사용하면 ReFS 메타데이터 스트림이 커지게 됩니다. ReFS는 캐시 관리자를 사용하여 메타데이터 스트림을 만들고 캐시 관리자는 비활성 뷰의 매핑을 지연 해제합니다. 경우에 따라 이 지연 맵 해제로 인해 서버의 활성 작업 집합이 증가합니다. 이로 인해 성능 저하를 일으킬 수 있는 메모리 압력이 발생합니다.

해결

이 문제는 2017년 3월 14일에 릴리스된 누적 업데이트 4013429 해결되었습니다. 이 업데이트에는 세 개의 튜닝 가능한 레지스트리 매개 변수가 도입되었습니다.

누적 업데이트 4013429 Windows 업데이트 통해 사용할 수 있습니다. Microsoft 업데이트 카탈로그를 통해 직접 다운로드할 수도 있습니다.

자세한 내용은 2017년 3월 14일 - KB4013429(OS 빌드 14393.953)을 참조 하세요.

튜닝 가능한 매개 변수를 설정하는 방법

이 업데이트는 큰 ReFS 메타데이터 스트림을 해결하기 위한 세 가지 튜닝 가능한 레지스트리 매개 변수를 제공합니다. 다음 선택적 메서드를 사용하여 매개 변수를 설정할 수 있습니다. 이러한 매개 변수는 기능적으로 겹치지 않으므로 모든 조합에서 사용할 수 있습니다.

Important

  • 이러한 매개 변수 변경 내용을 적용하려면 다시 시작해야 합니다.
  • 이러한 매개 변수는 장애 조치(failover) 클러스터의 모든 노드에서 일관되게 설정해야 합니다.

옵션 1

이 옵션을 사용하면 ReFS에서 모든 검사점에서 모든 메타데이터 스트림의 전체 MM 매핑 해제를 시도합니다. 이 옵션은 볼륨이 유휴 상태이고 매핑된 페이지가 없는 경우에만 예상 결과를 생성합니다.

다음 하위 키에 표시된 값을 지정합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
값 이름: RefsEnableLargeWorkingSetTrim
RefsEnableLargeWorkingSetTrim = 1 설정
값 형식: REG_DWORD

옵션 2

ReFS에는 지연 MM 매핑 해제 논리가 있습니다. 따라서 ReFS가 전체 네임스페이스를 순환하여 MM 매핑 해제를 완료할 때 특정 세분성으로 매핑을 해제합니다. 매핑되지 않은 가상 주소 공간의 양은 다음 수식에 따라 결정됩니다.

RefsNumberOfChunksToTrim 128MB(크기 > 10TB의 볼륨) RefsNumberOfChunksToTrim 64MB(크기 < 10TB의 볼륨)

이 옵션은 매핑되지 않은 VA 범위에 활성 참조(즉, 매핑된 메타데이터 페이지)가 없는 경우에 작동합니다.

다음 하위 키에 표시된 값을 지정합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
값 이름: RefsNumberOfChunksToTrim
값 형식: REG_DWORD
DEFAULT(설정되지 않은 경우 또는 0): 4

참고 항목

RefsNumberOfChunksToTrim을 더 높은 값으로 설정하면 ReFS가 더 적극적으로 트리밍됩니다. 사용 중인 메모리 양을 줄입니다. 트리밍 값을 적절한 숫자인 8, 16, 32 등으로 설정합니다.

옵션 3

이 옵션에서 ReFS는 메타데이터 페이지의 매핑을 해제하는 동안 MM 트리밍 인라인을 보냅니다. SSD 또는 NVMe와 같은 고성능 미디어에서 ReFS를 사용하는 경우 성능 회귀를 일으킬 수 있기 때문에 가장 공격적인 옵션입니다.

다음 하위 키에 표시된 값을 지정합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
값 이름: RefsEnableInlineTrim
값 형식: REG_DWORD
RefsEnableInlineTrim 설정 = 1

권장 사항:

큰 활성 작업 집합으로 인해 성능이 저하되는 경우 먼저 RefsEnableLargeWorkingSetTrim = 1을 설정해 봅니다.

이 설정이 만족스러운 결과를 생성하지 않는 경우 RefsNumberOfChunksToTrim에 대해 8, 16, 32 등과 같은 다른 값을 시도합니다.

그래도 원하는 효과를 제공하지 않는 경우 RefsEnableInlineTrim = 1을 설정합니다.

자세한 정보

메타데이터를 업데이트하기 위해 ReFS는 쓰기 대신 쓰기에 할당을 사용하여 손상에 대한 복원력을 향상시킵니다.

현재 위치에서 쓰는 것은 찢어진 쓰기에 취약합니다. 전원 오류 또는 예기치 않은 분리로 인해 쓰기가 부분적으로만 완료되는 경우에 발생합니다.

쓰기에 할당하면 ReFS가 전원 오류 또는 예기치 않은 분리 후 메타데이터 일관성을 안정적으로 유지할 수 있습니다. ReFS는 이전의 일관된 메타데이터 복사본을 계속 참조할 수 있기 때문입니다.

참조