Qualquer benefício ou prejuízo da remoção de um arquivo de paginação em uma máquina com 8 GB de RAM?

214

Estou executando o Windows 7 em um dual core x64 AMD com 8 GB de RAM.

Eu preciso mesmo de um arquivo de paginação?

A remoção ajudará ou prejudicará o desempenho?

Isso faria diferença se fosse um servidor ou uma área de trabalho?

O Windows 7 versus o Windows 2008 faz a diferença com um arquivo de paginação?

    
por Jason 10.06.2009 / 21:50

13 respostas

301

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:

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á!

    
por 10.06.2009 / 23:15
80

Eric Lippert escreveu recentemente uma entrada de blog descrevendo como o Windows gerencia a memória. Em suma, o modelo de memória do Windows pode ser considerado como um armazenamento de disco em que a RAM atua como um cache de aprimoramento de desempenho.

    
por 24.06.2009 / 21:47
47

Como eu vejo de outras respostas, eu sou o único que desabilitou o arquivo de paginação e nunca me arrependi. Ótimo: -)

Tanto em casa quanto no trabalho eu tenho o Vista 64-bit com 8 GB de RAM. Ambos têm o arquivo de paginação desabilitado. No trabalho, não é nada incomum para mim ter poucas instâncias do Visual Studio 2008, do Virtual PC com o Windows XP, de duas instâncias do SQL Server e do Internet Explorer 8 com muitas guias trabalhando juntas. Eu raramente chego a 80% da memória.

Também estou usando o sono híbrido todos os dias (hibernação com sono) sem problemas.

Comecei a experimentar com o Windows XP com 2 GB de RAM e realmente vi a diferença. Um exemplo clássico foi quando os ícones no Painel de Controle pararam de se mostrar um após o outro, mas todos de uma vez. Também o tempo de inicialização do Firefox / Thunderbird aumentou drasticamente. Tudo começou a funcionar imediatamente depois que eu cliquei em algo. Infelizmente, 2 GB era muito pequeno para o uso de meus aplicativos (Visual Studio 2008, Virtual PC e SQL Server), então eu o habilitei de volta.

Mas agora, com 8 GB, nunca mais quero voltar e ativar o arquivo de paginação.

Para aqueles que estão dizendo sobre casos extremos, pegue este no meu Windows XP.
Quando você está tentando carregar grande tabela dinâmica no Excel de uma consulta SQL, o Excel 2000 aumenta seu uso de memória muito rapidamente. Quando você tem arquivo de página desabilitado - você espera um pouco e, em seguida, o Excel irá explodir eo sistema irá limpar toda a memória depois dele.
Quando você tem o arquivo de página ativado - você espera algum tempo e quando você perceber que algo está errado, você não pode fazer quase nada com o seu sistema. Seu HDD está funcionando como o inferno e mesmo que você consiga executar o Gerenciador de Tarefas (após alguns minutos de espera) e matar excel.exe , você deve esperar um minuto ou mais até que o sistema carregue tudo de volta do arquivo de paginação. Como eu vi mais tarde, o Excel 2003 lida com a mesma tabela dinâmica sem nenhum problema com o arquivo de página desabilitado - por isso não era um "problema muito grande no conjunto de dados".

Então, na minha opinião, um arquivo de página desativado até protege você, às vezes, de aplicativos mal escritos.

Em breve: se você souber do uso de sua memória, poderá desativá-la com segurança.

Editar: só quero acrescentar que instalei o Windows Vista SP2 sem problemas.

    
por 28.06.2009 / 23:10
34

Você pode querer fazer alguma medida para entender como o seu próprio sistema está usando a memória antes de fazer ajustes no arquivo de paginação. Ou (se você ainda quiser fazer ajustes), antes e depois disseram ajustes.

Perfmon é a ferramenta para isso; não Gerenciador de Tarefas. Um contador de chaves é Memória - Páginas de entrada / seg . Isso graficará especificamente as falhas de página hard , aquelas em que uma leitura do disco é necessária antes que um processo possa continuar. As falhas de página Soft (que são a maioria dos itens representados no contador padrão Falhas de página / seg ; recomendo ignorar esse contador!) não são realmente um problema; eles simplesmente mostram itens sendo lidos da RAM normalmente.

Gráfico de desempenho http://g.imagehost.org/0383/perfmon-page.png

Acima é um exemplo de um sistema sem preocupações, em termos de memória. Muito ocasionalmente há um pico de falhas graves - estas não podem ser evitadas, uma vez que os discos rígidos são sempre maiores que a RAM. Mas o gráfico é praticamente plano em zero. Portanto, o sistema operacional está paginando de backing store muito raramente.

Se você estiver vendo um gráfico Memória - Páginas de entrada / s muito mais espesso do que este, a resposta correta é reduzir a utilização de memória (executar menos programas) ou adicionar memória RAM. Alterar as configurações do arquivo de paginação não alteraria o fato de que mais memória está sendo exigida do sistema do que realmente é.

Um contador adicional útil para monitorar é PhysicalDisk - Média Comprimento da fila (todas as instâncias). Isso mostrará o quanto suas alterações afetam o uso do disco. Um sistema bem comportado mostrará essa média de contagem em 4 ou menos por fuso .

    
por 10.06.2009 / 23:52
34

Eu executei minha caixa Vista x64 de 8 GB sem um arquivo de página por anos, sem problemas.

Surgiram problemas quando realmente usei minha memória!

Três semanas atrás, comecei a editar arquivos de imagem realmente grandes (~ 2 GB) no Photoshop. Uma sessão de edição consumiu toda a minha memória. Problema: Eu não consegui salvar meu trabalho, pois o Photoshop precisa de mais memória para salvar o arquivo!

E como era o próprio Photoshop, que estava consumindo toda a memória, eu nem conseguia liberar memória fechando programas (bem, eu sabia, mas era muito pouco para ajudar).

Tudo o que eu consegui foi descartar meu trabalho, ativar meu arquivo de página e refazer todo o meu trabalho. Perdi muito trabalho devido a isso e não posso recomendar a desativação do seu arquivo de página.

Sim, funcionará muito bem na maior parte do tempo. Mas no momento em que ele quebra, pode ser doloroso.

    
por 22.07.2009 / 11:43
19

Embora as respostas aqui tenham abordado o tópico bastante bem, ainda recomendarei esta leitura:

link

Ele fala sobre o tamanho da FP quase no final:

Some feel having no paging file results in better performance, but in general, having a paging file means Windows can write pages on the modified list (which represent pages that aren’t being accessed actively but have not been saved to disk) out to the paging file, thus making that memory available for more useful purposes (processes or file cache). So while there may be some workloads that perform better with no paging file, in general having one will mean more usable memory being available to the system (never mind that Windows won’t be able to write kernel crash dumps without a paging file sized large enough to hold them).

Eu gosto muito dos artigos do Mark.

    
por 29.06.2009 / 02:42
13

A melhor resposta que posso pensar é que, sob uma carga normal, você não pode usar os 8 GB, mas são os carregamentos inesperados em que você terá problemas.

Com um arquivo de paginação, o sistema irá, pelo menos, rodar lentamente uma vez que comece a acessar a página. Mas se você remover o arquivo da página, ele simplesmente morrerá (pelo que eu sei).

Além disso, 8 GB parece muito agora, mas, daqui a alguns anos, pode ser considerada a quantidade mínima de memória para muitos softwares.

De qualquer forma - eu recomendaria manter pelo menos um pequeno arquivo de página; mas outros, por favor, me corrija se eu estiver fora da base.

    
por 10.06.2009 / 21:56
6

Você não mencionou se é uma edição de 64 bits do Windows, mas acho que sim.

O arquivo de paginação serve muitas coisas, incluindo a geração de um dump de memória no caso de BSoD (Tela Azul da Morte).

Se você não tiver um arquivo de paginação, o Windows não conseguirá sair para o disco se não houver memória suficiente. Você pode pensar que com 8 GB você não atingirá esse limite. Mas você pode ter programas ruins vazando memória ao longo do tempo.

Eu acho que você não vai deixar o hibernate / standby sem um arquivo de paginação (mas eu não tentei ainda).

O Windows 7/2008 / Vista não altera o uso do arquivo de paginação.

Eu vi uma explicação de Mark Russinovich (Microsoft Fellow) explicando que o Windows pode ser mais lento sem arquivo de paginação do que com um arquivo de paginação (mesmo com muita memória RAM). Mas não consigo encontrar de volta a causa raiz.

Você está sem espaço em disco? Eu manteria um mínimo de 1 GB para poder ter um dump do kernel no caso de um BSOD.

    
por 10.06.2009 / 21:59
5

Desativei meu arquivo de paginação (8 GB em um laptop x86) e tive dois problemas, mesmo com 2500 MB livres:

  1. Erro do ASP.NET tentando ativar o serviço WCF : A verificação de portas de memória falhou porque a memória livre (399.556.608 bytes) é inferior a 5% da memória total. Como resultado, o serviço não estará disponível para solicitações recebidas. Para resolver isso, reduza a carga na máquina ou ajuste o valor de minFreeMemoryPercentageToActivateService no elemento de configuração serviceHostingEnvironment.

    Não sei como 3,7 GB é inferior a 5% de 8 GB!

  2. Obtendo a caixa de diálogo Fechar programas para evitar a perda de informações : Quando 75% da minha RAM é usada, recebo uma caixa de diálogo dizendo para fechar programas. Você pode desabilitar isso com uma modificação no registro (ou possivelmente desativando o 'Serviço de política de diagnósticos').

No final, decidi apenas ligá-lo novamente. O Windows simples e simples nunca foi projetado para ser usado sem um arquivo de paginação. É otimizado para rodar com paginação, não sem. Se você está planejando usar mais de 75% de sua memória e não quer mexer com seu registro - então pode não ser para você.

    
por 18.09.2010 / 11:21
5

A única pessoa que pode dizer se os seus servidores ou estações de trabalho "precisam" de um arquivo de página é você , com o uso cuidadoso do monitor de desempenho ou o que for chamado nos dias de hoje. Quais aplicativos você está executando, que uso eles estão vendo e qual é o maior uso de memória que você poderia ver?

A estabilidade vale a pena comprometer para salvar uma pequena quantidade de dinheiro em discos rígidos menores?

O que acontece quando você faz o download de um patch muito grande, por exemplo, um service pack. Se o serviço de instalação decidir que precisa de mais memória do que você pensou em descompactar o patch, o que aconteceria? Se o seu antivírus (corretamente) decidir digitalizar este pacote muito grande, que tipo de uso de memória ele precisará enquanto descompacta e verifica este arquivo de correção - eu espero que o arquivo de correção não contenha nenhum arquivo, porque isso seria absolutamente necessário. assassinato figuras de uso de memória.

O que eu posso dizer é que remover o arquivo de sua página tem uma probabilidade muito maior de machucar do que de ajudar. Não consigo ver uma razão pela qual você não teria um - tenho certeza de que pode haver alguns casos de especialistas em que estou errado, mas essa é outra área.

    
por 10.06.2009 / 22:16
2

Sua memória total disponível é seu arquivo de paginação + memória real.

A questão principal é se o uso de memória total previsto para todos os aplicativos e o uso do sistema operacional se aproximam de 8 GB. Se o uso médio de mems for de 2 GB e o uso máximo de memória for de apenas 4 GB, o uso de um arquivo de página não terá sentido. Se o uso máximo de memória estiver mais próximo de 6-7 Gb ou maior do que é uma boa ideia ter um arquivo de paginação.

PS: Não se esqueça de permitir crescimento no futuro!

    
por 26.06.2009 / 03:59
2

Parece que muitas pessoas severamente limitadas têm uma opinião sobre esse assunto, mas nunca tentaram executar o computador sem um arquivo de paginação.

Poucos, se quase nenhum, tentaram. Ainda menos parece saber como o Windows trata o arquivo de paginação. Ele não "apenas" é preenchido quando você fica sem RAM física. Aposto que a maioria de vocês nem sabia que sua RAM "gratuita" é usada como um cache de arquivos!

Você pode obter melhorias de desempenho massivas desativando seu arquivo de paginação. Seu sistema será mais suscetível a erros de falta de memória (e você sabe como seus aplicativos respondem nesse cenário - na maioria das vezes, o sistema operacional finaliza o aplicativo). Os tempos de arranque dos períodos de espera ou de inatividade prolongada serão muito mais rápidos.

Se a Microsoft realmente permitir que você defina uma opção na qual o arquivo de paginação seja usado APENAS quando estiver fora da RAM física (e todos os buffers de arquivos tenham sido descartados), acho que há pouco a ganhar com a desativação do arquivo de paginação.

    
por 15.01.2010 / 18:55
-3

Isso é antidotal, mas nós executamos um Windows Server 2003 Terminal Server para cerca de 20 usuários, com 10-15 conectados ao tempo e 8 GB de RAM. Nós não rodamos com um arquivo de paginação e nosso servidor roda mais rápido do que antes. Isso obviamente não é uma solução para tudo, mas nós corremos assim há dois anos e não tivemos problemas que eu saiba.

    
por 10.06.2009 / 22:24