"메타 파일"메모리 사용량을 줄이겠습니까?


8

업무용 컴퓨터 (Windows 7 64 비트)는 프로그램간에 전환 할 때 메모리를 교체하는 데 많은 시간을 소비합니다. 4GB의 RAM이 있기 때문에 놀랍습니다. 사용하는 프로그램이 특히 RAM에 굶주린 것은 아닙니다 (Outlook, Emacs, p4win, Firefox, 다양한 빌드 도구). RAMMap을 다운로드 했는데 "Metafile"에 사용 된 기가 바이트 이상의 메모리가 표시됩니다.

로부터 시스 인 터널 블로그 :

메타 파일은 시스템 캐시의 일부이며 NTFS 메타 데이터로 구성됩니다. NTFS 메타 데이터에는 다른 다양한 NTFS 메타 데이터 파일뿐만 아니라 MFT도 포함됩니다. ... MFT에서 각 파일 속성 레코드는 1k를 가지며 각 파일에는 하나 이상의 속성 레코드가 있습니다. 여기에 다른 NTFS 메타 데이터 파일을 추가하면 파일이 많은 서버에서 메타 파일 범주가 상당히 커질 수있는 이유를 알 수 있습니다.

"Metafile"데이터가 무엇인지 이해합니다. 수십만 개의 파일로 구성된 대규모 빌드에서 작업하고 있습니다. 내 질문은 "Metafile"에 사용되는 메모리 양을 어떻게 줄일 수 있습니까? 한 번에 모든 파일을 적극적으로 사용하고 있지 않으므로 Windows에서 RAM에 정보를 유지해야하는 이유는 무엇입니까? 새 빌드를 동기화 할 때마다 컴퓨터를 다시 시작하는 것은 정말 성가신 일입니다.


4
빌드는 IO를 많이 사용하므로 Windows는 성능을 향상시키기 위해 큰 파일 시스템 캐시를 유지합니다. 불행히도, 빌드 도구는 또한 많은 메모리를 사용하며 일반적으로 큰 스파이크에서 늪을 일으킬 수 있습니다. 이것은 시스템 캐시와 경쟁하기 때문입니다. 가장 좋은 해결책은 더 많은 메모리를 추가하는 것입니다.
tgiphil

@tgiphil, 빌드하거나 체크 아웃 할 때 많은 메모리가 사용된다는 것을 이해할 수 있습니다. 그러나 여전히 사용 중이며 작은 지역에서 일할 때 훨씬 늦게 발생합니다. 불행히도 IT는 더 이상 메모리를 제공하지 않습니다.
Jay Conrod

캐싱을 통해 Windows 7이 이미 성능을 최적화하고 있다고 생각합니다. 따라서 사용 가능한 메모리를 늘리고 스왑을 줄이려면 불필요한 응용 프로그램을 모두 닫으십시오. 예를 들어 Outlook과 Firefox를 닫으면 좋은 메모리 덩어리를 얻을 수 있습니다. Visual Studio를 사용하고 컴파일해야하는 경우 대신 명령 줄 빌드를 시도하십시오. 이게 도움이 되길 바란다. BTW. 메모리가 너무 낮아 (100G 미만의 6Gb) 탁월한 생산성 투자입니다.
tgiphil

답변:


4

시스템 캐시는 필요할 때 메모리를 해제하지만 결함이 발생할 수 있다고 생각합니다. 다음은 몇 가지 가능성입니다.

64 비트 시스템은 비디오 메모리를 처음 4GB의 메모리에 할당합니다. 따라서 비디오 카드의 메모리가 많은 경우 다음에 설명 된대로 메모리가 손실됩니다
. 사용 가능한 메모리가 Windows 7 기반 컴퓨터에 설치된 메모리보다 적을 수 있습니다.

장치 관리자를 열어 컴퓨터의 메모리 사용량을 검사하고보기 메뉴에서 "연결 별 리소스"를 선택하십시오. 메모리 노드를 확장하고 메모리를 점유하고있는 것이 무엇인지 알아낼 수 있는지 확인하십시오. 경우에 따라 Firewire와 같은 사용하지 않는 장치를 비활성화하여 메모리를 늘릴 수 있습니다.

또한 시도하고이 문서에서 설명하는 것의 정반대을 수행 할 수 있습니다
윈도우 7에서 파일 시스템 메모리 캐시 크기를 증가

Windows 7 SuperFetch비활성화 할 수도 있습니다 .

도움이되지 않으면 성능이라는 작업 관리자 탭의 스크린 샷을 게시하는 것이 좋습니다.


+1은 "Superfetch 비활성화"입니다.

다운 그레이드는 없지만 Superfetch는 빌드 실행 파일이 일반적으로 자주 실행되며 캐시되는 이점이 있기 때문에 성능을 떨어 뜨리지 않고 성능을 향상시킬 가능성이 높습니다. 사용 가능한 메모리에 영향을주는 비디오 카드는 4Gb 만있는 Windows 7 64 비트에는 적용되지 않습니다. 이 경우 비디오 카드는 4Gb 이상으로 매핑됩니다.
tgiphil

@tgiphil : 위에서 언급 한 Microsoft 기사 : "256MB의 온보드 메모리가있는 비디오 카드에서 해당 메모리는 주소 공간의 처음 4GB 내에 매핑되어야합니다."
harrymc

우리 조직에는 수많은 작은 파일과 RAM에 거대한 NTFS 메타 파일이 있습니다. 내가 알 수 있듯이 Windows는 메타 파일을 다른 모든 것과 같이 캐시하지 않으며 RAM에서 메타 파일을 실제로 해제하지 않습니다. 컴퓨터는 최대 100 % 메모리 사용률을 유지 한 다음 메모리 부족으로 인해 모든 응용 프로그램이 충돌하기 시작합니다. 물론 이것은 Windows 7이 아니며 Windows Server 2008 R2입니다.
Phil

또한 "파일 시스템 메모리 캐시 증가"링크는 실제로 작동하지 않는 사항을 알려줍니다.
Phil

0

Windows Server 2008 R2는 메타 데이터 정보가 너무 많아 활성 메모리에 너무 많은 메타 파일 정보가 그대로 유지되는 것과 동일한 메타 파일 "캐시"문제를 겪으므로, 캐시 기능은 메모리가 부족할 때이 메모리를 해제 할 수있는 권한이 없습니다.

serverfault.com 페이지 에서 최대 메타 파일 활성 메모리를 적당한 것으로 설정하는 Windows Server 2008 R2 메타 파일 RAM 사용량 에 powershell 스크립트를 작성했습니다 . 나머지는 대기 메모리로 이동하고 일반 캐시 기능은 우선 순위를 적절하게 지정할 수 있습니다. Windows 7 x64 및 Server 2008 R2 x64에는 메타 파일 데이터 1TB에 대한 기본 최대 활성 메모리 제한이 있습니다. 예, GB가 아니라 TB입니다.

Work는 이제 서버의 모든 사이트에서 해당 스크립트를 실행하여 사이트 백업을 구성하고 매일 백업주기 동안 수백만 개의 파일을 처리합니다. 이러한 백업 서버는 자체 SQL 서버를 사용하여 메모리가 많은 Java 프로그램 (VMware vSphere), 2 개의 SQL 서버 및 WSUS를 실행합니다. 백업 소프트웨어는 먼저 메타 데이터 (이름, 크기, 수정 한 날짜, 권한, 속성 등)를 읽고 백업 할 파일 목록을 결정하여 메타 파일 캐시를 매우 빠르게 채 웁니다. 심지어 4GB의 RAM 만 있으면 순조롭게 순항 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.