Reduzir o uso de memória "Metafile"?


8

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.


4
As construções são intensivas em E / S e, portanto, o Windows mantém um grande cache do sistema de arquivos para melhorar o desempenho. Infelizmente, as ferramentas de construção também usam muita memória e geralmente em picos grandes, o que provavelmente está causando a inundação. Como isso está competindo contra o cache do sistema. A melhor solução pode ser adicionar mais memória.
tgiphil

@ tgiphil, é compreensível que muita memória seja usada ao fazer o check-out ou fazer a compilação. No entanto, ele ainda está sendo usado e ainda causa surtos muito mais tarde, quando estou trabalhando em uma área pequena. Infelizmente, a TI não me dará mais memória.
Jay Conrod

Acho que o Windows 7 já está otimizando seu desempenho com o cache. Portanto, para aumentar a memória disponível e reduzir a troca, feche todos os aplicativos desnecessários. Você pode recuperar um bom pedaço de memória fechando o Outlook e o Firefox, por exemplo. Se você estiver usando o Visual Studio e precisar compilar apenas, tente uma compilação da linha de comando. Eu espero que isso ajude. Entre. Com memória tão baixa (6 GB abaixo de US $ 100), é um excelente investimento em produtividade.
precisa saber é o seguinte

Respostas:


4

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.


O +1 é para "Desativar Superfetch".

Sem nota baixa, mas o Superfetch provavelmente está aumentando seu desempenho - não diminuindo - já que os executáveis ​​de compilação geralmente são executados com frequência e se beneficiarão de serem armazenados em cache. Quanto à placa de vídeo que afeta a memória disponível, ela não é aplicável no Windows 7 de 64 bits com apenas 4Gb. A placa de vídeo seria mapeada acima de 4Gb, neste caso.
precisa saber é o seguinte

@tgiphil: No artigo da Microsoft acima mencionado: "uma placa de vídeo com 256 MB de memória interna, essa memória deve ser mapeada nos primeiros 4 GB de espaço de endereço".
harrymc

Na minha organização, também temos vários arquivos pequenos e um enorme metarquivo NTFS na RAM. Pelo que sei, o Windows não armazena em cache o Metafile como todo o resto e nunca o libera da RAM. O computador consumirá até 100% de memória e todos os seus aplicativos começarão a falhar devido à falta de memória. Claro que não é o Windows 7, é o Windows Server 2008 R2.
21411 Phil

Além disso, o link "Aumentar o cache de memória do sistema de arquivos" aconselha coisas que realmente não funcionam. Veja tweakhound.com/blog/?p=1164
Phil

0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.