Meu computador de trabalho (Windows 7 de 64 bits) gasta muito tempo trocando memória quando alterno entre programas. Isso me surpreende, pois tenho 4 GB de RAM e os programas que uso não têm muita fome de RAM (Outlook, Emacs, p4win, Firefox, várias ferramentas de compilação). Eu baixei o RAMMap e ele mostra mais de um gigabyte de memória usado pelo "Metafile".
No blog Sysinternals :
O metarquivo faz parte do cache do sistema e consiste em metadados NTFS. Os metadados do NTFS incluem o MFT e outros arquivos de metadados do NTFS. ... Na MFT, cada registro de atributo do arquivo leva 1k e cada arquivo possui pelo menos um registro de atributo. Adicione a isso os outros arquivos de metadados NTFS e você poderá ver por que a categoria Metafile pode crescer bastante em servidores com muitos arquivos.
Então, eu entendo o que são os dados "Metafile" ... Trabalho em grandes compilações, compreendendo centenas de milhares de arquivos (nenhum é tão grande, mas eles somam vários gigabytes). Minha pergunta é como posso reduzir a quantidade de memória usada pelo "Metafile"? Não estou usando ativamente todos esses arquivos de uma só vez. Por que o Windows precisa manter as informações na RAM? Reiniciar minha máquina toda vez que sincronizo uma nova compilação é realmente irritante.
Respostas:
Acredito que o cache do sistema libere sua memória quando necessário, mas podem ocorrer falhas. Abaixo estão listadas algumas possibilidades.
Seu sistema de 64 bits aloca a memória de vídeo nos primeiros 4 GB de memória. Portanto, se sua placa de vídeo tiver muita memória, ela será perdida, conforme descrito em:
A memória utilizável pode ser menor que a memória instalada nos computadores com Windows 7
Você pode examinar o uso da memória no computador abrindo o Gerenciador de dispositivos e, no menu Exibir, escolha "Recursos por conexão". Expanda o nó Memória e veja se consegue descobrir o que está ocupando a memória. Em alguns casos, a memória pode ser aumentada desativando dispositivos não utilizados, como firewire.
Você também pode tentar fazer exatamente o oposto do descrito neste artigo:
Aumentar o tamanho do cache de memória do FileSystem no Windows 7
Você também pode tentar desativar o Windows 7 SuperFetch .
Se nada ajudar, seria útil publicar uma captura de tela da guia Gerenciador de tarefas denominada Desempenho.
fonte
O Windows Server 2008 R2 enfrenta exatamente o mesmo problema de "cache" do metarquivo, que muitas informações do metarquivo são mantidas na memória ativa; portanto, as funções de cache não têm permissão para permitir que essa memória seja liberada quando houver pressão de memória.
Escrevi um script do PowerShell na página serverfault.com, uso da RAM do metarquivo do Windows Server 2008 R2 que define a memória ativa máxima do metarquivo para algo razoável. O restante é movido para a memória em espera e as funções normais de cache podem priorizar as coisas de maneira apropriada. O Windows 7 x64 e o Server 2008 R2 x64 têm limites máximos de memória ativa padrão para dados de metarquivo de 1 TB. Sim TB, não GB.
O trabalho agora executa esse script em todos os nossos sites em nossos servidores que organizam os backups do site, que lidam com milhões de arquivos durante seu ciclo de backup todos os dias. Esses servidores de backup também executam um programa java com muita memória (VMware vSphere), 2 servidores SQL e WSUS com seu próprio servidor SQL. Com o software de backup lendo pela primeira vez os metadados (nome, tamanho, data de modificação, permissões, atributos, etc.) para determinar a lista de arquivos nos quais ele fará backup e que passa MUITO rapidamente preenche o cache do metarquivo. Mesmo fazendo tudo isso, eles navegam muito bem com apenas 4 GB de RAM.
fonte