Como impedir que o Windows 8 armazene em cache arquivos grandes?

1

Editar

Os arquivos de vídeo dos quais falo não têm relação com o LoL (jogo). Eles eram arquivos separados que eu baixei pessoalmente. Dos 8GB que foram usados, o jogo caiu, o jogo estava usando menos de 500MB. O Chrome estava usando 1 GB. Os serviços do sistema usavam menos de 500 MB e tudo o mais que eu tenho em execução era inferior a 1 GB. Meu consumo médio de memória está em torno de 2,5 GB - 3 GB para todos os programas / jogos.

Editar

Os 6GB usados foram depois que eu fechei o jogo e todos os outros aplicativos. Quando o jogo travou, todos os 8GB estavam sendo usados (não em espera ou livre / não disponível para ser usado quando necessário) com 5GB sendo armazenados em cache Arquivos de vídeo MKV que não estavam em espera / livres . O jogo foi capaz de travar com "falta de memória" porque eu tenho minha memória virtual (arquivo de swap) desabilitada (o problema não era o jogo ser capaz de travar, mas porque esses grandes arquivos de vídeo MKV estavam sentados em todo o pool de memória forçando o jogo a falhar).

TL; DR

O Windows 8 armazenava em cache uma tonelada de arquivos MKV grandes como memória ativa (não em espera). Esses MKVs não estavam abertos em nenhum programa e isso foi depois de várias reinicializações sem abrir os MKVs. Usar o RAM MAP para liberar todos os "conjuntos de trabalho" limpou todos os MKVs do cache de RAM e reduziu meu uso de RAM de 6 GB para 2 GB.

Como evito isso?

INTRODUÇÃO

Estou executando o Windows 8 de 64 bits com 8 GB de RAM.

Eu não uso muitos programas. Os únicos programas "pesados" que uso são o Chrome, o League of Legends e talvez o Malwarebytes. Não muito.

No entanto, meu jogo continuou travando com erros sem memória . Eu estava ficando realmente intrigado com isso porque eu sei que eu não estava usando 8GB de RAM com o que eu estava fazendo.

Então eu olho para o gerenciador de tarefas e adicionando a maioria das coisas na minha cabeça eu tenho cerca de 2GB usado por relatórios de monitor de recursos 6GB sendo usado (sem programas ativos "pesados"). Realmente confuso agora.

Obtenha mais detalhes com o programa Ram Map . Ele me diz que arquivos mapeados estão usando 4GB não é um incômodo para mim se está tudo em standby ou pronto para ser lançado a qualquer momento . Mas não foi ... todos os 4GB estavam ativos não em espera .

Então eu fui mais fundo e fui para o arquivo lister e o listei pela memória ativa e encontrei o culpado ...

    
por Kenny Parker 25.02.2014 / 16:31

4 respostas

2

O Google Chrome e o jogo não foram projetados para serem executados em um sistema sem um arquivo de permuta. Ele pressupõe que haverá um arquivo de permuta e usará muito mais memória do que "o mínimo necessário" para executar para melhorar o desempenho.

As suas opções são entrar em contato com os desenvolvedores de League of Legends e Chrome pedindo que eles reescrevam seu software para ser amigável ao arquivo não-swap (o que faria com que o software tivesse um desempenho pior, porque ele precisa gastar mais CPU ciclos de gerenciamento de memória) ou começar a usar um arquivo de troca.

Note que, enquanto nos tempos do Windows XP e anterior, desabilitar o seu arquivo de troca realmente lhe dava um aumento de desempenho devido a uma falha no gerenciador de memória sendo muito agressiva, não é mais verdade hoje . Não há motivo para não ter um arquivo de troca em uma versão moderna do Windows.

    
por 25.02.2014 / 17:22
1

Os programas do Windows não ficam "sem memória" porque estão sem memória RAM. Eles estão sem memória endereçável. Na prática, isso acontece apenas com processos de 32 bits, já que eles podem endereçar apenas 4 GB (2 32 ) no melhor dos casos, e geralmente apenas 2 GB (2 31 ).

Além disso, a RAM usada para armazenar arquivos em cache está disponível para os programas quando eles precisam. O Windows ainda tinha 2GB livres, então é claro que não jogou fora arquivos em cache. Por que isso? Melhor usar memória livre, quando um programa perguntar. (Mas o seu programa provavelmente não poderia pedir mais de 2GB de qualquer maneira)

Observe que isso corrige um bug em versões anteriores do Windows (até o XP), que erroneamente liberavam a memória cache mesmo quando havia outra memória livre disponível. Você parece querer esse bug de volta.

    
por 25.02.2014 / 16:51
1

"Eu tenho meu swap desabilitado porque sei que de fato não uso programas suficientes para abordar 8GB"

Sim ... os erros "falta de memória" que você está vendo estão dizendo o contrário.

Você está trabalhando com um equívoco fundamental.

A mensagem "out of memory" não tem nada a ver com RAM e não seria ajudada, mesmo se todos esses arquivos mapeados não fossem mapeados, mesmo se toda a sua RAM fosse livre.

Refere-se à memória virtual, ou mais precisamente, commit charge, que não pode ser maior do que o limite de commit. O limite de confirmação é o tamanho da RAM (não apenas "RAM livre"! Toda a RAM) mais o tamanho atual do seu arquivo de paginação.

Seu jogo aparentemente está pedindo uma enorme alocação de espaço de endereço virtual. Seu sistema não possui commit suficiente disponível para satisfazer o pedido, então o jogo falha.

Observe que, depois que o jogo travar, você não poderá ver por que o problema ocorreu. A taxa de confirmação será igual ou inferior ao limite de confirmação. (Sempre é.) Como a solicitação de alocação do jogo falhou, ela não é refletida na taxa de confirmação atual. Não há maneira fácil de saber quanto o jogo estava pedindo.

Por que você costumava ser capaz de executar o jogo sem arquivo de paginação, a pergunta não é "quem está usando a RAM", mas "quem está usando a taxa de commit". n.b .: Os arquivos mapeados pelo cache de arquivos não contribuem para commit charge (porque os próprios arquivos são o backing store; se não houver espaço na RAM para eles, eles não precisam ser paginados para o arquivo de paginação). Nem é claro, a lista de páginas em espera.

A cura é adicionar RAM ou ativar seu arquivo de paginação.

Mais detalhes aqui: link - segunda parte. Mas a primeira parte ajuda a entender a segunda parte.

    
por 13.08.2014 / 15:40
0

Os divisores MKV, como LAV e Haali, mapeiam o arquivo MKV para a memória "standby". O divisor MKV do Divx Media Foundation mapeia o arquivo MKV para a memória "ativa" por algum motivo, consumindo uma grande quantidade de RAM, não permitindo a realocação conforme necessário.

Acredito que o divisor MKV da Divx Media Foundation está fazendo isso incorretamente e o divisor precisa ser instruído a mapear para a memória de espera como os outros divisores de MKV.

Tenho algumas capturas de tela com o RAMMAP detalhando como o divisor mapeia a memória de maneira diferente:

link

Se não houver uma maneira de corrigir esse mapeamento "ativo", provavelmente vou morder o marcador e atualizar para 16 GB de RAM.

    
por 09.07.2014 / 05:38