Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

다양한 버전의 Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 및 Windows Server 2008 R2의 애플리케이션 및 서비스에서 성능 문제가 있습니다. 또한 다음과 같은 증상이 있습니다.

  • 사용 가능한 메모리가 거의 소모됩니다.

  • 시스템 파일 캐시는 대부분의 실제 RAM을 소비합니다.

  • 하드 디스크에 대한 캐시된 읽기 요청의 양이 지속적으로 증가합니다.

원인

Microsoft Windows 운영 체제의 메모리 관리는 수요 기반 알고리즘을 사용합니다. 프로세스가 요청하고 많은 양의 메모리를 사용하는 경우 프로세스의 작업 집합(실제 RAM의 메모리 페이지 수)이 증가합니다. 이러한 요청이 연속되고 검사되지 않은 경우 프로세스의 작업 집합이 모든 실제 RAM을 사용하게 됩니다. 이 경우 다른 모든 프로세스에 대한 작업 집합이 하드 디스크로 페이지 아웃됩니다. 이 동작은 메모리 페이지가 하드 디스크에 지속적으로 기록되고 하드 디스크에서 읽기 때문에 애플리케이션 및 서비스의 성능이 저하됩니다.

이 동작은 시스템 파일 캐시의 작업 집합에도 적용됩니다. 모든 프로세스 또는 드라이버에서 캐시된 대량의 연속적인 캐시된 읽기 요청이 있는 경우 시스템 파일 캐시의 작업 집합 크기가 이 수요에 맞아 증가합니다. 시스템 파일 캐시는 실제 RAM을 소비합니다. 따라서 다른 프로세스에서는 충분한 양의 물리적 RAM을 사용할 수 없습니다.

Windows Vista보다 이전 버전인 32비트 버전의 Microsoft Windows 운영 체제에서 시스템 파일 캐시의 작업 집합에는 1GB 미만의 설명 메모리 제한이 있습니다. 가상 주소 범위의 제한은 시스템 파일 캐시의 작업 집합이 실제 RAM을 소모하지 않도록 방지합니다.

32비트 버전의 Windows Vista 운영 체제에서는 커널 리소스가 동적으로 할당됩니다. 시스템 파일 캐시의 작업 집합은 커널 모드의 가상 주소 범위를 사용하게 되어 다른 커널 리소스가 사용되지 않습니다. 이 메모리 범위의 제한은 2GB 미만입니다. 컴퓨터에 2GB 이상의 실제 RAM이 있는 경우 캐시가 모든 실제 RAM을 소모할 수 없습니다. 그러나 캐시는 커널의 가상 주소 공간을 소진할 수 있습니다. 이로 인해 다른 커널 구성 요소에 대한 할당 오류가 발생할 수 있습니다.

64비트 버전의 Windows 운영 체제에서 가상 주소 범위의 크기는 일반적으로 실제 RAM보다 크기입니다. 이 경우 시스템 파일 캐시에 대한 작업 집합이 증가하여 대부분의 실제 RAM을 사용할 수 있습니다.

해결 방법

Windows 7 및 Windows Server 2008 R2 운영 체제의 메모리 관리 알고리즘은 이전 버전의 Windows에서 발견된 많은 파일 캐싱 문제를 해결하기 위해 업데이트되었습니다. Windows 7 또는 Windows Server 2008 R2를 실행하는 컴퓨터에서 이 서비스를 구현해야 하는 특정 고유한 상황만 있습니다.

시스템이 영향을 받는지 여부를 확인하는 방법

시스템이 이 문제의 영향을 받는지 확인하려면 SysInternals RamMap 도구를 설치합니다. 다음 Windows Sysinternals 웹 사이트에서 도구를 얻을 수 있습니다.

http://technet.microsoft.com/en-us/sysinternals/ff700229
도구를 실행할 때 개수 사용 옵션을 선택합니다. 그러면 현재 메모리 사용 패턴을 보여 주며 여러 열이 표시됩니다. 활성 열을 클릭하여 사용된 byte 수를 정렬하고 총계 바로 아래에서 상위 사용량을 적어 습니다.

상위 사용 횟수가 "메타파일"이고 사용 가능한 메모리의 상당 부분을 사용하는 경우 "증상" 섹션에 설명된 시스템 파일 캐시 문제가 발생하게 됩니다. 성능 모니터를 사용하여 Memory\System Cache Resident Bytes 카운터를 모니터링하고 시간이 지날수록 캐시가 지속적으로 증가하는지 확인할 수 있습니다.

그림 1. 컴퓨터에 문제가 있는 RamMap 출력 예제입니다.


대체 텍스트
그림 2. 컴퓨터에 문제가 없는 RamMap 출력 예제


대체 텍스트
성능 모니터의 Memory\System Cache Resident Bytes 카운터가 시간 경과에 따라 상향 추세를 표시하는 경우 그림 3과 같이 컴퓨터에 문제가 발생하고 있습니다.

그림 3. 시간이 지날 때 컴퓨터가 문제를 경험하는 예제 성능 모니터 출력입니다.

대체 텍스트

다시 시작 요구 사항

이 서비스를 설치, 제거 또는 사용할 때 컴퓨터를 다시 시작할 필요가 없습니다.

이 문제의 영향을 받는 것으로 생각하는 고객과 함께 작업 중이기 때문에 이 문서를 읽고 있는 경우 다음 단계에 따라 문제를 해결하세요.

  1. 고객의 RamMap 출력, perfmon 또는 풀몬 데이터가 앞에서 설명한 대로 시스템 파일 캐시가 대부분의 실제 RAM을 사용하는지 확인 합니다.

  2. Windows 동적 캐시 서비스를 얻습니다.

  3. 일부 동적 캐시 레지스트리 설정은 다음과 같습니다.

    파일 서버의 경우 1GB를 사용해 보아야 할 수 있습니다.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    Exchange 2007에서는 500MB를 사용해 보려고 할 수 있습니다.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    SQL 2005 이상에서는 과거에 SQL EE를 사용할 때 2GB를 사용하게 됩니다.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

추가 정보

이 문제를 해결하기 위해 GetSystemFileCacheSize API 함수 및 SetSystemFileCacheSize API 함수를 사용하여 시스템 파일 캐시의 작업 집합에 대한 최대 또는 최소 크기 값을 설정합니다. 이러한 함수의 사용은 시스템 파일 캐시에 의해 물리적 메모리의 사용을 제한하는 유일한 지원되는 방법입니다.

Microsoft Windows 동적 캐시 서비스는 이 문제의 영향을 최소화하기 위해 이러한 API를 사용하는 한 가지 전략을 보여주는 샘플 서비스입니다.

Microsoft Dynamic Cache Service를 설치하고 사용하는 경우 Microsoft Windows에 대한 지원이 제외되지 않습니다. 이 서비스 및 소스 코드는 Microsoft 지원 API를 사용하여 파일 시스템 캐시의 증가를 줄이는 방법의 예로 제공됩니다.

다음 Microsoft 웹 사이트에서 서비스 및 소스 코드를 얻을 수 있습니다.

http://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

추가 리소스

Windows 내부의 9장(메모리 관리) 및 10(캐시 관리자) 5판을 읽습니다.

메모리 관리(큰 시스템 캐시 문제) 블로그 게시물

느린 대용량 파일 복사 문제 블로그 게시물

Windows 릴리스에 대한 메모리 제한

976618 시스템 파일 캐시가 실제 RAM 918483의 대부분을 사용하는 경우 애플리케이션 및 서비스에서 성능 문제가 있는 경우 64비트 버전의 SQL Server 895932에서 버퍼 풀 메모리의 파이징을 줄이는 방법 Windows XP 232271에서 시스템 캐시 모드를 사용하도록 설정하기 전에



Windows Server

2003에서 레지스트리

837331 About Cache Manager를 사용하여 Windows NT Server를 최적화하는 방법 http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx



LargeSystemCache TechNet항목

RamMap 블로그 게시물 

상태

Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×