TL; DR versão: Deixe o Windows lidar com suas configurações de memória / arquivo de paginação. As pessoas na MS gastaram um muito mais horas pensando nessas questões do que a maioria de nós sysadmins.
Muitas pessoas parecem supor que o Windows envia dados para o arquivo de paginação sob demanda. EG: algo quer muita memória, e não há RAM suficiente para preencher a necessidade, então o Windows começa a gravar loucamente os dados da RAM para o disco neste último minuto, para liberar memória RAM para as novas demandas.
Isso está incorreto. Há mais acontecendo sob o capô. De um modo geral, o Windows mantém um backing store , o que significa que quer ver tudo o que está na memória também no disco em algum lugar. Agora, quando algo aparece e exige muita memória, o Windows pode limpar a RAM muito rapidamente, porque os dados já estão no disco, prontos para serem recuperados na memória RAM, se necessário. Assim, pode-se dizer que muito do que está no arquivo de paginação é também na RAM; os dados foram preventivamente colocados no arquivo de paginação para acelerar novas demandas de alocação de memória.
A descrição dos mecanismos específicos envolvidos levaria muitas páginas (consulte o capítulo 7 de Windows Internals e observe que um A nova edição estará disponível em breve), mas há algumas coisas interessantes a serem observadas. Primeiro, muito do que está na RAM já está intrinsecamente no disco - código de programa buscado de um arquivo executável ou de uma DLL, por exemplo. Portanto, isso não precisa ser gravado no arquivo de paginação; O Windows pode simplesmente rastrear de onde os bits foram originalmente buscados. Segundo, o Windows rastreia quais dados na RAM são usados com mais freqüência e, portanto, libera da RAM os dados que ficaram mais longos sem serem acessados.
Remover completamente o arquivo de paginação pode causar mais movimentação de disco. Imagine um cenário simples em que algum aplicativo é lançado e exige 80% da RAM existente. Isso forçaria o código executável atual a sair da RAM - possivelmente até mesmo o código do sistema operacional. Agora, toda vez que esses outros aplicativos - ou o próprio SO (!!) precisam acessar esses dados, o sistema operacional deve paginá-los a partir do armazenamento de backup no disco, levando a muita sujeira. Como sem arquivo de paginação para servir como armazenamento de backup para dados transitórios, as únicas coisas que podem ser paginadas são executáveis e DLLs que tinham armazenamentos de backup inerentes para começar.
Existem, é claro, muitos cenários de recursos / utilização. Não é impossível que você tenha um dos cenários sob os quais não haveria efeitos adversos ao remover o arquivo de paginação, mas estes são a minoria. Na maioria dos casos, remover ou reduzir o arquivo de paginação levará a um desempenho reduzido em cenários de utilização de recursos de pico.
Algumas referências:
- Livros do Windows Internals ( 4ª edição e 5ª edição )
- Empurrando os limites do Windows: Memória física
- Empurrando os limites do Windows: memória virtual
- Dentro do kernel do Windows Vista: parte 1
- Dentro do kernel do Windows Vista: parte 2
- Dentro do kernel do Windows Vista: parte 3
- Compreendendo a memória virtual
- RAM, memória virtual, arquivo de paginação e todas essas coisas uma versão mais longa )
- A síndrome de falta de memória, ou: Por que eu ainda preciso de um arquivo de paginação?
dmo anotou um recente Eric Lippert post que ajuda na compreensão da memória virtual (embora seja menos relacionado à questão ). Eu estou colocando aqui porque eu suspeito que algumas pessoas não irão rolar até outras respostas - mas se você achar valioso, você deve dmo um voto, então use o link para chegar lá!