Windows, por que seus 8 GB de RAM parecem alguns MB?

7

Estou no Windows 7 x64 com Intel Core i7 de 4 núcleos e 8 GB de RAM, mas ultimamente parece que a "RAM" do meu computador está localizada apenas no disco rígido.

Veja o que o gerenciador de tarefas mostra:

Aquantidadetotaldememóriausadapelosprocessosnalistaédeapenas1GB.Eoqueestáacontecendonomeucomputadorporalgunsdiasagoraéqueumprograma(Cataloger.exe)estácontinuamenteprocessandograndesquantidadesdearquivos(pertode5-10MBcada),repetidamenteabrindoelendo-osparafinsdecatalogação.Maselenãocrescemuitonamemóriaepermanecenessetamanho,100MB.Noentanto,aquantidadededadosprocessadosem,digamos,30minutospodesermedidaemgigabytes.

Então,meupalpiteéqueocachedearquivosdoWindowstemalgoavercomisso.Edepoisdealgumapesquisasobreotema,medepareicomesteprograma,chamadoRamMap,queexibeinformaçõesdetalhadassobreaRAMdeumcomputador.Aquiestáacapturadetela:

Então, para mim, parece que o Windows mantém na RAM grandes quantidades de dados que não são mais necessários, redirecionando quaisquer solicitações de alocação de RAM para o arquivo de paginação no disco rígido. Mesmo quando eu fecho Cataloger.exe, o RamMap relata o tamanho do arquivo mapeado como sobre o mesmo por um longo tempo em diante. E não é apenas esse programa em particular. Anteriormente notei que semelhante desaceleração ocorreu após algumas operações de arquivos em massa com outros programas. Portanto, não é realmente um comportamento excepcional do Cataloger.exe e o problema se manifestou muitas vezes no passado.

Seja o que for, ele reduz o ritmo do computador em até 50 vezes. Abrir uma nova guia no Chrome leva de 20 a 30 segundos. A abertura de um novo programa pode levar até um minuto. Devido à desaceleração, alguns programas até travam.

Então, o que você acha, o problema está escondido no cache de arquivos ou em algum outro lugar? Como resolvo isso?

    
por Desmond Hume 18.09.2012 / 17:31

2 respostas

11

Isso é apenas um trabalho normal e tudo está funcionando corretamente. O Windows não está armazenando arquivos em cache na memória em detrimento de outros dados - arquivos em cache significam que, em um ponto, o Windows tinha para carregá-los na memória ou lê-los no disco, e algo de maior prioridade não chegou junto desde aquele tempo. Assim que você retomar o uso do computador e os programas solicitarem a memória, o Windows terá todo o prazer em remover os arquivos armazenados em cache para liberar espaço.

Se você olhar para o RAMMap, notará que a maioria desses arquivos em cache estão alocados em "Standby" - isso significa que ele está sendo mantido na memória porque o Windows precisava dele no passado, pode precisar dele novamente e felizmente descartá-lo se alguma outra coisa realmente precisar do espaço.

Basicamente, o que você está vendo aqui é que seu programa solicita que um arquivo grande de dados seja carregado, então o Windows o carrega na memória. Gerenciar memória é um processo muito complexo, e o que o Windows está fazendo aqui é fazer uma avaliação: ele analisa os processos atuais e vê que o Chrome está ocupando, digamos, 5 GB de memória (muitas guias!), Mas que a maior parte da memória não foi tocada na última hora. Nesse ponto, ele tem uma opção: pode deixar o Chrome na memória e não armazenar em cache os arquivos. Isso significa que o processo do Cataloger pode levar horas em vez de minutos para processar um arquivo, especialmente se ele estiver pulando muito no arquivo; ou pode arquivar as guias do Chrome e carregar o arquivo Cataloger na memória e concluir esse processo rapidamente.

Agora, você sentirá dor quando o Windows tiver que voltar ao Chrome, mas o Windows não fará isso até que você o solicite (ou seja, coloque o chrome de volta no primeiro plano e selecione uma guia que foi paginada) e o que, em última análise, precisa ser avaliado por você é se a dor é maior ou menor do que a dor da tarefa do Catalogador ter que esperar pela memória. Você pode tentar executar o programa como um serviço e dizer ao Windows para otimizar a capacidade de resposta, ou tentar diminuir a prioridade do processo, mas tenho certeza de que o que você vai querer é que o processo do Cataloger seja concluído o mais rápido possível. está maximizando o seu disco de E / S, todo o seu sistema vai ser incrivelmente lento. Tudo o que requer E / S de disco será colocado em uma fila (até mesmo webbrowsing - ele tem um cache que também usa!). Os programas abrirão lentos, novas abas serão abertas rapidamente, mas, na verdade, usá-las para algo será lento.

Se o programa estiver lendo sequencialmente arquivo após arquivo e depois não tocá-lo novamente, concordarei que o Windows não precisa estar armazenando os arquivos em cache. O problema aqui é que o Windows não sabe disso, porque ninguém está dizendo que eles não precisam ser armazenados em cache.

Se você tiver acesso ao código-fonte do programa Cataloger (ou pode solicitar que modificações sejam feitas), ele poderá ser configurado para abrir arquivos com FILE_FLAG_NO_BUFFERING , o que fará com que o Windows ignore o cache de disco para arquivos abertos pelo programa dessa maneira.

Se isso não for uma opção, a menos que o processo do Cataloger tenha para ser executado em seu sistema, eu olharei em volta para ver se há um computador reserva que não está sendo usado e se ele puder ser configurado como uma máquina dedicada para catalogar esses arquivos. Se já não houver um, simplesmente aumentar sua memória RAM pode ser outra opção; os preços de memória são bastante baratos hoje em dia, e os desenvolvedores sabem disso - a maioria das coisas é otimizada para velocidade e capacidade de resposta ao custo da memória. 8GB não é o que costumava ser.

Outra opção é mover todos os arquivos que ele usa para um disco rígido separado e, especificamente, desativar o cache de disco para essa unidade.

    
por 18.09.2012 / 17:43
-1

Eu tive o mesmo problema exato, é um processo chamado "intellimem.exe" eu deletei e KABOM! de 80% de ram e arquivo de paginação para nenhum arquivo de página e 20% de uso de RAM! e eu não tenho problemas.

    
por 03.03.2014 / 07:57