Computer >> 컴퓨터 >  >> 체계 >> Windows Server

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

파일 서버 중 하나 Windows Server 2008 R2를 실행하는 동안 서버 및 응용 프로그램 성능에 문제를 일으키는 높은 RAM 로드 문제가 발생했습니다. 시스템 파일 캐시에 의해 메모리가 꽉 찬 것으로 나타났습니다. 파일 시스템 메타데이터 포함 . 이 문제는 사용자가 액세스하는 많은 수의 파일이 있는 모든 파일 서버에 잠재적으로 영향을 미칩니다. 메모리의 메타데이터 파일 크기가 거의 전체 RAM 크기로 확대될 수 있는 x64 Windows 버전에서 가장 중요합니다.

Windows 파일 서버의 높은 RAM 로드

문제는 다음과 같이 나타납니다. 작업 관리자에서 실제 메모리가 95-99 동안 사용 중임을 알 수 있습니다. %.

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

프로세스에서 탭에서 비정상적으로 높은 메모리 소비로 누수된 프로세스가 없습니다. 또한 모든 프로세스에서 사용하는 대략적인 메모리 값을 합산하면 서버에 있는 실제 메모리의 50%도 얻지 못할 것입니다. 그렇다면 기억을 먹고 있는 것은 무엇일까요?

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

RAM 사용량에 대한 실제 데이터는 작은 유틸리티인 RAMMap(Mark Russinovich 작성)을 사용하여 얻을 수 있습니다. 도구가 포함된 아카이브를 다운로드하고 관리자 권한으로 RAMMap.exe를 실행합니다. 사용 횟수 에서 , 메타파일 가장 많은 양의 RAM을 사용하고 있습니다. (저희의 경우 서버 RAM 25GB 중 11개를 사용하고 있습니다.)

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

Windows에서 메타파일이란 무엇입니까?

메타파일은 NTFS 메타데이터를 포함하는 시스템 캐시의 일부이며 파일에 액세스할 때 파일 시스템의 성능을 높이는 데 사용됩니다. NTFS 메타데이터에는 MFT(마스터 파일 테이블)의 데이터가 포함됩니다. 사용자가 액세스하는 각 파일 또는 폴더에 대해 메타파일에 최소 1KB의 해당 블록(각 파일의 특성 레코드는 1KB이고 각 파일에는 하나 이상의 특성이 있음)이 생성됩니다. 따라서 파일 수가 많은 파일 서버에서는 메타파일 크기(NTFS 캐시)가 수십 기가바이트를 초과할 수 있습니다.

이 캐시를 비활성화하거나 기본 제공 Windows 도구를 사용하여 관리하는 것은 불가능합니다. 해결책으로 서버의 메모리 크기를 늘릴 수 있지만 항상 가능한 것은 아닙니다.

메모리를 확보하기 위해 서버를 다시 시작할 수 있지만 시간이 지나면 메모리의 메타파일 크기가 엄청나게 커지기 시작합니다.

예를 들어 Russinovich의 다른 도구(ntfsinfo)를 사용하여 MFT의 크기를 추정할 수 있습니다. . 우리의 경우 2TB 디스크의 MFT 크기는 13GB입니다.

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

메타파일을 빠르게 정리하는 방법

RAMMap을 사용하면 서버를 다시 시작하지 않고도 MFT 가비지에서 사용된 메모리를 빠르게 지울 수 있습니다. 이를 수행하려면 비어 있음 -> 빈 시스템 작업 세트를 선택합니다. 메뉴에서.

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

그 후 메모리에 있는 메타파일의 크기가 수십 배 줄어들었고 CPU가 사용하는 RAM의 비율이 95%에서 26%로 떨어졌습니다.

Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

이 방법의 가장 큰 단점은 정리가 수동이며 자동으로 수행될 수 없다는 것입니다.

파일 캐시를 관리하는 동적 캐시 서비스

파일 시스템 메타파일에 의한 높은 메모리 로드의 또 다른 기본적인 솔루션은 동적 설치입니다. 캐시 서비스 ( https://www.microsoft.com/en-us/download/details.aspx?id=9258). 이 서비스를 사용하면 시스템 API를 사용하여 전용 MFT 캐시의 매개변수를 관리할 수 있습니다.

중요 . 위에서 설명한 문제가 발생한 경우에만 이 솔루션을 사용하십시오. 이 서비스의 설치는 서버의 높은 메모리 사용량의 다른 원인에 대한 보편적인 솔루션이 아닙니다.

DynCache를 설치하는 것은 다소 쉽습니다(아카이브에 자세한 지침이 있음).

  • DynCache.exe 파일 복사 %SystemRoot%\System32 로 폴더
  • DynCache 생성 서비스 이 명령 사용: sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service" Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정
  • 가져오기 DynCache.reg 레지스트리에(기본값 포함)
  • 다음 레지스터 키의 값을 변경합니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters
    1. MaxSystemCacheMBytes :4096  (dec) – 최대 캐시 크기(Mb)
    2. MinSystemCacheMBytes :100(dec) – 최소 캐시 크기(MB) Windows Server 2008 R2에서 메타파일에 의한 높은 메모리 사용량 수정

    참고 . 이들 및 기타 DynCache 서비스 설정은 RAM 크기, 서버 부하, 요구되는 성능 등에 따라 수정되어야 합니다. 일반적으로 서버에 설치된 물리적 RAM의 절반 이상으로 캐시 크기를 설정하는 것은 권장하지 않습니다. 변경 후에는 모든 변경 사항이 동적으로 적용되므로 DynCache를 다시 시작할 필요가 없습니다.

  • 다음 명령을 사용하여 서비스를 실행합니다. sc start DynCache

우리의 경우 DynCache 서비스가 설치된 후 메타파일에 의한 메모리 사용이 우리가 설정한 4GB 이상을 초과하는 것을 멈췄습니다. 사용자는 파일 서버의 성능 문제를 보고하지 않았습니다.