Como reduzir o thrashing de disco (paginação)?

11

Eu tenho 4 GB de RAM, mas o Windows ainda debulha do disco algumas vezes (principalmente quando um aplicativo é minimizado por algum tempo e, em seguida, eu o ative novamente). Completamente estúpido, porque o Gerenciador de Tarefas mostra que 2 GB de RAM são gratuitos. Existe alguma maneira de impedir que o Windows troque a memória do programa?

Tentei configurar o Superfetch para armazenar apenas em cache os arquivos de inicialização (ajudou um pouco) e desativar o arquivo de paginação (ajudou muito e funcionou bem para mim no Windows XP; mas o Windows Vista / Windows 7 não permite isso - mostra "baixo" na memória "frequentemente, mesmo quando tenho 1 GB de RAM livre.)

O que você pode me aconselhar a fazer?

skevar7
fonte
6
Você não deseja desativar o super busca com 4 GB de RAM, mas pode desativar a indexação. Deixe o arquivo de paginação em paz, o Windows sabe mais sobre ele do que qualquer um de nós. Eu não posso ajudar com a paginação, no entanto.
Phoshi
2
Não, eu certamente quero desligá-lo. A coisa maldita é muito mal projetada. Uma vez eu o encontrei carregando todos os arquivos de algum jogo em cada inicialização (eu costumava jogar à noite), e isso consumia metade da minha RAM, e isso foi no último dia em que o Superfetch estava sendo executado no meu PC com configurações irrestritas.
skevar7
1
O termo thrashing geralmente se refere à situação em que a memória física está cheia ou quase cheia, e ocorrem trocas constantes de páginas. Não se refere à atividade normal de troca de página. O que você está vendo não está debatendo, mas apenas como o algoritmo de gerenciamento de memória foi projetado. Mantenha o espaço disponível para processos recém-gerados, assuma que um processo que tenha sua janela minimizada não esteja sendo usado e deve mover sua memória para o disco e tal.
spowers 14/03/10
2
Essa é a pior decisão que já assumimos que, porque uma janela é minimizada, ela não está sendo usada. Se é minimizado, é porque não há espaço suficiente na tela durante a multitarefa. Estou tão cansado de retornar ao meu computador e, apesar de ter poucos programas em execução, fica lento e gaguejador trazer dados de volta do arquivo de paginação quando estou restaurando algumas janelas de um estado minimizado, apesar de ter GIGs de RAM livre. O arquivo de paginação NUNCA deve ser tocado, a menos que a memória RAM esteja acabando. Se o Windows quiser fazer suposições sobre programas minimizados, faça-o quando não houver realmente RAM suficiente.
Triynko 28/05

Respostas:

7

Mark Russianovich escreveu um bom artigo longo sobre memória virtual,
superando os limites do Windows: memória virtual

A memória virtual separa a visualização de memória de um programa da memória física do sistema, portanto, um sistema operacional decide quando e se armazenar o código e os dados do programa na memória física e quando armazená-lo em um arquivo. A principal vantagem da memória virtual é que ela permite que mais processos sejam executados simultaneamente do que poderiam caber na memória física.

Enquanto a memória virtual possui limites relacionados aos limites da memória física, a memória virtual tem limites derivados de diferentes fontes e diferentes dependendo do consumidor. Por exemplo, existem limites de memória virtual que se aplicam a processos individuais que executam aplicativos, o sistema operacional e para o sistema como um todo. É importante lembrar que, ao ler isso, a memória virtual, como o nome indica, não tem conexão direta com a memória física. O Windows que atribui ao cache de arquivos uma certa quantidade de memória virtual não determina quantos dados do arquivo ele realmente armazena em cache na memória física; pode ser qualquer quantia que não seja maior que a quantia endereçável via memória virtual.

É uma leitura muito boa.

Quão grande devo criar o arquivo de paginação?
Talvez uma das perguntas mais comuns relacionadas à memória virtual seja: qual o tamanho do arquivo de paginação? Não há fim de conselhos ridículos na Web e nas revistas que cobrem o Windows, e até a Microsoft publicou recomendações enganosas. Quase todas as sugestões são baseadas na multiplicação do tamanho da RAM por algum fator, com valores comuns sendo 1,2, 1,5 e 2. Agora que você entende a função que o arquivo de paginação desempenha na definição do limite de confirmação de um sistema e como os processos contribuem para a cobrança de confirmação, você está bem posicionado para ver como essas fórmulas são inúteis.


Artigo anterior: Aumentando os limites do Windows: memória física

Você pode ver o layout da memória física com a ferramenta Meminfo , de Alex Ionescu .

nik
fonte
5
Nada de novo para mim lá. E isso não é uma resposta para minha pergunta.
skevar7
2
@ skevar7: talvez não seja uma resposta para você, mas bons links para explicações sobre tudo isso para alguém que encontraria esse tópico e que não teria tanto conhecimento quanto você.
Gnoupi
1
regra geral: nem mencione o Paging, a menos que seja com absoluta certeza relacionada ao seu problema ou se você apenas deseja iniciar uma discussão sem fim sobre os DOs e os NÃO ... o mesmo vale para navegadores da Web e software antivírus: )
1
Estou absolutamente certo de que a paginação é culpada, porque o perfmon mostra falhas graves quando o disco está debulhando. Eu certamente sei que desativar o arquivo de paginação melhora significativamente o desempenho. É um fato objetivo e pode ser medido. O único problema é que o Windows, já que o Vista não deseja mais trabalhar nessa configuração.
skevar7
3
@ skevar7: E talvez, apenas talvez, haja pessoas competentes pensando na Microsoft, que pensaram e decidiram que o arquivo de paginação era necessário. Eles não fizeram isso apenas para incomodá-lo.
Gnoupi
4

Apenas deixe o gerenciamento de memória virtual no Windows, ele faz um bom trabalho. A paginação (e, portanto, os comentários de Mark Russinovic sobre o assunto) é bastante irrelevante para o thrashing de disco (se você tiver memória de sistema em abundância), você está procurando ajustes no NTFS .

O'Reilly tem um artigo interessante sobre o NTFS Performance Hacks .

No lado do hardware: um disco rígido melhor com taxa de rotação mais alta e cache maior também ajudará bastante.

E aqui está como eliminar o aviso de pouca memória, apropriar-se e usar as seguintes chaves do Registro.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {5EE64AFB-398D-4edb-AF71-3B830219ABF7}]

e

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}]

Isso impedirá que o Serviço de Diagnóstico carregue o RADAR. Funciona para mim no Windows Vista, as chaves estão presentes no Windows 7. No entanto, ainda não tentei - basta fazer backup dessas chaves antes de excluí-las.

Peter Mortensen
fonte
2

A única maneira que encontrei foi aumentar o tamanho da RAM para 8 GB e desativar a paginação definindo

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Gerenciamento de Memória \ DisablePagingExecutive = 1

(é necessário reiniciar).

Isso reduziu a atividade do disco para quase zero.

skevar7
fonte
Eu suspeito que você tinha um disco peculiar ou lento para querer isso. Eu tenho algo parecido e, ao contrário do que muitos assumem aqui, o que você fez seria uma boa solução. Aumentar a RAM e usar paginação em disco mínima ou inexistente pode ser uma solução mais inteligente (e econômica) do que substituir a mídia lenta.
j riv
Essa configuração do registro não "desativa a paginação". Desativa apenas a paginação para o que de outra forma seriam partes pagináveis ​​do ntoskrnl.exe e do pool paginado.
Jamie Hanrahan
Não conheço o Vista, mas no Windows 7 desativo a paginação e não apresenta problemas e avisos. Isso ocorre com 8 ou 16 GB de RAM.
I486
1

Confira Painel de controle \ Sistema e segurança \ Sistema> Configurações avançadas do sistema> [Avançado]> Desempenho: Configurações> [Avançado]

O agendamento do processador está relacionado ao seu problema, assim como a capacidade de desativar o arquivo de paginação que você não deveria estar fazendo. (Você precisa disso)

encore2097
fonte
0

Parece que você instalou um cache / limpador de mem. Eles movem os aplicativos para troca quando você os minimiza, em vez de deixá-los na memória.

O sistema está lento ou você está apenas usando a palavra thrash porque vê a luz do HD piscando?

UnderLoK
fonte
Sem produtos de limpeza. Às vezes, leva muito mais tempo do que o habitual para executar uma operação simples (5 a 10 segundos) e o disco está debulhando. Isso geralmente acontece depois que o aplicativo fica ocioso por algum tempo. Operações muito simples - abra uma nova guia no Opera, crie um novo arquivo no Visual Studio, etc. Então, suponho que o algoritmo de paginação do Windows esteja longe de ser perfeito. Desativar completamente o arquivo de paginação funcionou bem para mim no WinXP, mas infelizmente o Vista e o Win7 não permitem isso.
skevar7
Ao contrário de muitos sistemas operacionais, o Windows suporta uma quantidade razoável de problemas de hardware sem travar e pode ser que algum tipo de recuperação esteja ocorrendo em segundo plano, causando o atraso. Sei que é péssimo, mas execute um teste de HD para garantir que não seja levantado, pois realmente soa como um problema de E / S, pois o problema desaparece quando você não permite que o sistema use a troca. Verifique se há atualizações do BIOS relacionadas a E / S, controlador hd etc. etc., pois pode haver um problema conhecido. O sistema leva o FOREVER para inicializar (XP, Vista ou 7)? Nesse caso, é definitivamente um problema de E / S.
UnderLoK
* Eu deveria ter dito "Windows irá colocar-se com uma boa quantidade de problemas de hardware sem notificá-lo de um problema";)
UnderLoK
0

Vá para o Linux, ele não faz isso.

As pessoas diriam que o Windows é mais inteligente do que você e que você não deve mexer nas configurações do arquivo de paginação e elas estão certas. Mas esse sistema é sintonizado principalmente para alocar nova memória para um processo quase instantaneamente e faz esse bem. Um dos efeitos colaterais é que ele move tudo o que você tem na memória para o disco o tempo todo; portanto, quando precisar de uma nova parte da memória, basta apagar essa parte da memória e entregá-la imediatamente, caso não tenha mudado, é claro. Acredito que, quando você deixa os aplicativos em execução, todos eles são armazenados em disco e, em algum momento, outros aplicativos ou sistema de cache começam a usar essa memória. Portanto, o aplicativo fica com o mínimo de dados disponíveis na RAM física e, quando você começa a usá-lo novamente, precisa recuperar tudo do disco.

Dito isto, acho que você não pode fazer tudo com isso, apenas uma das principais propriedades do sistema. Você pode piorar a situação desativando a página ou fazendo qualquer outro ajuste no sistema. Você não pode fazê-lo funcionar como quiser, pois não foi escrito com isso em mente.

vava
fonte
2
E mais uma vez uma resposta "meu windows faz isso, como posso ...? -> Mover para linux". No entanto, o restante da resposta está correto, mas você poderia ter feito sem a primeira frase.
Gnoupi
OK, mas quando você tem 8 GB de RAM e a real necessidade é de 3 GB - por que é necessário fazer uma troca de disco? Por outro lado, imagine que você tem 2 GB de RAM física + 2 GB de arquivo de troca - como esse sistema funciona sem "explosão"? 4 GB são suficientes para tudo, mas com 8 GB de RAM física + 0 de troca, é "possível" ter memória insuficiente. Quão? Eu acho que o algoritmo para a memória virtual está errado a partir do Windows 95 vezes e não é alterado no Windows 10.
i486