Reduzir o uso da memória “Metafile”?

8

Meu computador de trabalho (Windows 7 de 64 bits) gasta muito tempo trocando memória quando eu alterno entre os programas. Isso me surpreende, pois tenho 4 GB de RAM, e os programas que uso não são particularmente cheios de memória 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".

Do Sysinternals blog :

Metafile is part of the system cache and consists of NTFS metadata. NTFS metadata includes the MFT as well as the other various NTFS metadata files. ... In the MFT each file attribute record takes 1k and each file has at least one attribute record. Add to this the other NTFS metadata files and you can see why the Metafile category can grow quite large on servers with lots of files.

Então eu entendo o que os dados do "Metafile" são ... Eu 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, então por que o Windows precisa manter informação na RAM? Reiniciar minha máquina toda vez que sincronizo uma nova compilação é realmente irritante.

    
por Jay Conrod 17.01.2011 / 19:19

2 respostas

4

Eu acredito que o cache do sistema libera sua memória quando necessário, mas falhas podem acontecer. 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 a sua placa de vídeo tiver muita memória, essa memória será perdida, conforme descrito em: A memória utilizável pode ser menor que a memória instalada em computadores baseados no 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 pela desativação de dispositivos não utilizados, como firewire.

Você também pode tentar fazer exatamente o oposto do que é descrito neste artigo:

Você também pode tentar Desativar o SuperFetch do Windows 7 .

Se nada ajudar, seria útil publicar uma captura de tela da guia Gerenciador de tarefas chamada Desempenho.

    
por 17.01.2011 / 20:37
0

O Windows Server 2008 R2 experimenta exatamente o mesmo problema de "cache" de metarquivo, que muitas informações de 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. / p>

Eu escrevi um script powershell na página serverfault.com Uso de RAM de metarquivo do Windows Server 2008 R2 que define a memória ativa de metarquivo máxima como algo razoável. O resto é movido para a memória de espera, e as funções normais do cache são capazes de priorizar as coisas apropriadamente. O Windows 7 x64 e o Server 2008 R2 x64 possuem 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 o ciclo de backup todos os dias. Esses servidores de backup também executam um programa Java pesado de memória (VMware vSphere), dois servidores SQL e o WSUS com seu próprio servidor SQL. Com o software de backup primeiro lendo os metadados (nome, tamanho, data de modificação, permissões, atributos, etc) para determinar a lista de arquivos que irá fazer o backup em que passa muito rapidamente enche o cache de meta-arquivo. Mesmo fazendo tudo o que eles fazem bem com apenas 4GB de RAM.

    
por 29.06.2014 / 15:54