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


213

Estou executando o Windows 7 em um núcleo dual, x64 AMD com 8 GB de RAM.

Eu preciso de um arquivo de paginação?

Removê-lo ajudará ou prejudicará o desempenho?

Faria diferença se este for um servidor ou um desktop?

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

Respostas:


299

Versão TL; DR: deixe o Windows manipular suas configurações de memória / arquivo de paginação. As pessoas na MS passaram muito mais horas pensando sobre esses problemas do que a maioria de nós, administradores de sistemas.

Muitas pessoas parecem assumir que o Windows envia dados para o arquivo de paginação sob demanda. Por exemplo: algo quer muita memória e não há RAM suficiente para suprir a necessidade, então o Windows começa a gravar loucamente dados da RAM no disco neste último minuto, para que possa liberar RAM para as novas demandas.

Isto está incorreto. Há mais coisas acontecendo sob o capô. De um modo geral, o Windows mantém uma loja de apoio , o que significa que deseja ver tudo o que está na memória também no disco em algum lugar. Agora, quando algo surge e exige muita memória, o Windows pode limpar a RAM muito rapidamente, porque esses dados já estão no disco, prontos para serem retornados à paginação na RAM, se necessário. Portanto, pode-se dizer que muito do que está no arquivo de paginação também está na RAM; os dados foram preemptivamente colocados no arquivo de paginação para acelerar novas demandas de alocação de memória.

A descrição dos mecanismos específicos envolvidos exigiria muitas páginas (consulte o capítulo 7 do Windows Internals e observe que uma nova edição estará disponível em breve), mas há algumas coisas interessantes a serem observadas. Primeiro, grande parte do conteúdo da RAM já está intrinsecamente no disco - o código do programa é obtido 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 acompanhar de onde os bits foram originalmente buscados. Segundo, o Windows controla quais dados na RAM são usados ​​com mais frequência e, portanto, limpa da RAM os dados que foram mais longos sem serem acessados.

Remover completamente o arquivo de paginação pode causar mais problemas no disco. Imagine um cenário simples em que alguns aplicativos iniciem e exijam 80% da RAM existente. Isso forçaria o código executável atual a sair da RAM - possivelmente até o código do SO. Agora, toda vez que esses outros aplicativos - ou o próprio sistema operacional (!!) precisarem acessar esses dados, o sistema operacional deverá paginá-los no armazenamento de backup em disco, o que leva a muitos problemas. Como sem o arquivo de paginação para servir como repositório de dados transitórios, as únicas coisas que podem ser paginadas são os executáveis ​​e as DLLs que possuíam repositórios de backup inerentes para começar.

Obviamente, existem muitos cenários de recursos / utilização. Não é impossível que você tenha um dos cenários em que não haveria efeitos adversos na remoção do arquivo de paginação, mas essas são as minorias. Na maioria dos casos, remover ou reduzir o arquivo de paginação levará a um desempenho reduzido em cenários de pico de utilização de recursos.

Algumas referências:

O dmo observou um post recente de Eric Lippert que ajuda no entendimento da memória virtual (embora esteja menos relacionado à questão). Estou colocando aqui porque suspeito que algumas pessoas não vão rolar para outras respostas - mas se você achar que é valioso, você deve votar na dmo , então use o link para chegar lá!


25
Para Jeff e Joel: rima com "patos"
quux 24/06/09

2
No Solaris, foi / está ainda mais envolvido. O arquivo de troca é mirroed em um disco ram como tmpfs, portanto a memória está sempre quase cheia - mas é aparentemente comprovável que essa é a estratégia ideal.
22320 Martin Beckett

2
Há muito tempo, acredito que, em vez de permitir que o Windows gerencie o tamanho do meu arquivo de paginação, eu devo configurá-lo para um valor fixo (por exemplo, 2 GB no mínimo, 2 GB no máximo), pois deixá-lo crescer e encolher pode causar problemas de fragmentação. Isso é bom pensamento, ou devo seguir sua primeira linha e deixar o Windows lidar com tudo?
31411 John Fouhy

2
@ Mehrdad: Porque você não quer manter 50% da sua RAM livre. Claro, você poderia fazer isso, mas perderia 50% da RAM física que poderia estar usando como cache de disco para dados ativos. RAM livre é um sinal de ineficiência, é como caminhões da FedEx em um depósito em vez de na estrada. Isso significa que você não está movendo o máximo de carga possível porque está gastando muito tempo carregando e descarregando.
David Schwartz

2
@ Mehrdad: O problema é que, sem nenhum arquivo de paginação, há muitos dados que devem ser mantidos na RAM, mesmo que provavelmente nunca sejam acessados. Considere, por exemplo, qualquer memória alocada por um processo iniciado na inicialização do sistema, mas que ofereça um serviço que não será usado por dias. O sistema não pode provar que os dados não serão acessados ​​e não tem outro lugar além da RAM para mantê-los. Portanto, o cache do disco diminui enquanto os dados são mantidos na RAM que não são acessados ​​há dias.
David Schwartz

80

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


47

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

Em casa e no trabalho, tenho o Vista de 64 bits com 8 GB de RAM. Ambos têm o arquivo de paginação desativado. No trabalho, não é incomum para mim ter poucas instâncias do Visual Studio 2008, Virtual PC com Windows XP, duas instâncias do SQL Server e Internet Explorer 8 com várias guias trabalhando juntas. Eu raramente alcanço 80% da memória.

Eu também estou usando 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. Exemplo clássico foi quando os ícones no Painel de Controle pararam de se mostrar um após o outro, mas de uma só 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 eram muito pequenos para o uso de meus aplicativos (Visual Studio 2008, Virtual PC e SQL Server), então eu o habilitei novamente.

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 nos meus tempos do Windows XP.
Quando você está tentando carregar uma tabela dinâmica grande no Excel a partir de uma consulta SQL, o Excel 2000 aumenta seu uso de memória rapidamente.
Quando o arquivo de paginação está desabilitado - você espera um pouco e o Excel explode e o sistema limpa toda a memória depois dele.
Quando o arquivo de paginação está ativado - você espera um pouco e quando percebe que algo está errado, você pode fazer quase nada com o seu sistema. Seu HD está funcionando como o inferno e, mesmo que você consiga executar o Gerenciador de Tarefas (após alguns minutos de espera) e matá- excel.exelo, aguarde alguns minutos até que o sistema carregue tudo de volta no arquivo de paginação.
Como vi mais adiante, o Excel 2003 lida com a mesma tabela dinâmica sem problemas com o arquivo de paginação desativado - portanto, 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ê de aplicativos mal escritos.

Em pouco tempo: se você estiver ciente do uso de memória - poderá desativá-lo com segurança.

Editar: Eu só quero adicionar que eu instalei o Windows Vista SP2 sem problemas.


3
Meu arquivo de paginação foi desativado e me arrependi no momento em que realmente usei minha memória. Portanto, fique feliz por ter mais memória do que precisa.
Sam

7
+1, "eu também" :-). Mesma história - 8 GB de memória, Vista x64, executando o Visual Studio com ReSharper + SQL Server Express + IIS + 1-2 máquinas virtuais (cada uma com 1500 MB de memória) + vários utilitários - nunca teve problemas.
Milan Gardian

21
Adoro como todo mundo está dizendo "A Microsoft passou muitas horas pensando nesse problema, então não mexa com ele", mas ignore completamente as experiências do mundo real. O arquivo de paginação foi desativado desde o XP e nunca me arrependi. É como se o computador tivesse uma injeção incrível.
AngryHacker 20/10/09

4
É uma prática bastante padrão desabilitar a paginação em servidores que o iSCSI inicializa; a paginação pela SAN seria perceptivelmente lenta. Você realmente precisa observar o uso da memória e ficar longe do máximo.
Chris S

6
-1 Não vejo nenhuma referência nesta resposta. Na verdade, meu sistema travou porque o arquivo de paginação foi desativado e a memória do pool de paginação ficou cheia. No entanto, o meu uso de memória física foi apenas com 2 GB ...
Tamara Wijsman

34

Você pode fazer algumas medições para entender como seu próprio sistema está usando memória antes de fazer ajustes no arquivo de paginação. Ou (se você ainda deseja fazer ajustes), antes e depois dos ajustes.

Perfmon é a ferramenta para isso; não Gerenciador de tarefas. Um contador de teclas é Memória - Entrada de páginas / s . Isto irá especificamente gráfico duras faltas de página, aqueles em que uma leitura do disco é necessária antes que um processo pode continuar. Macio falhas de página (que são a maioria dos itens representados graficamente no padrão falhas de página / seg balcão;! Eu recomendo ignorar esse contador) não são realmente um problema; eles simplesmente mostram itens sendo lidos da RAM normalmente.

Gráfico Perfmon http://g.imagehost.org/0383/perfmon-paging.png

Acima está um exemplo de um sistema sem preocupações, em termos de memória. Ocasionalmente, há um pico de falhas no disco rígido - elas não podem ser evitadas, pois os discos rígidos são sempre maiores que a RAM. Mas o gráfico é bastante plano em zero. Portanto, o sistema operacional está paginando do armazenamento de backup muito raramente.

Se você estiver vendo um gráfico Memória - Entrada de páginas / s que é muito mais pontudo que este, a resposta certa é diminuir a utilização da memória (executar menos programas) ou adicionar RAM. Alterar as configurações do arquivo de paginação não mudaria o fato de que mais memória está sendo exigida do sistema do que realmente tem.

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


1
ofegue alguém que esteja se esforçando para demonstrar como inspecionar o arquivo de troca. impressionante.
cgp 21/03

1
Link morto para a imagem. Necessidades corrigidas.
precisa saber é o seguinte

Sim, "ImageHost.org está fechado"
Peter Mortensen

34

Eu corro minha caixa x64 Vista de 8 GB sem um arquivo de paginação há anos, sem problemas.

Surgiram problemas quando eu realmente usei minha memória!

Três semanas atrás, comecei a editar arquivos de imagem muito grandes (~ 2 GB) no Photoshop. Uma sessão de edição consumiu toda a minha memória. Problema: Não foi possível 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 não conseguia nem liberar memória fechando programas (bem, eu fiz, mas era muito pouco para ajudar).

Tudo o que pude fazer foi desfazer meu trabalho, ativar meu arquivo de paginação e refazer todo o meu trabalho - perdi muito trabalho devido a isso e não posso recomendar a desativação do seu arquivo de paginação.

Sim, funcionará muito bem na maioria das vezes. Mas no momento em que quebra, pode ser doloroso.


7
você deve salvar mais vezes: D, a fim de minimizar os danos
alexandrul

1
fácil dizer, quando a economia leva alguns minutos, isso é uma pita.
Sam

Todos nós ficamos felizes se você usar um software mais complexo, mas, às vezes, uma "falha" acaba se alinhando com "Oh, merda, eu não economizo há algum tempo".
Damon

19

Embora as respostas aqui abordem o tópico muito bem, ainda assim recomendarei esta leitura:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Ele fala sobre o tamanho do PF quase no final:

Alguns acham que não ter um arquivo de paginação resulta em melhor desempenho, mas, em geral, ter um arquivo de paginação significa que o Windows pode escrever páginas na lista modificada (que representam páginas que não estão sendo acessadas ativamente, mas que não foram salvas em disco) no diretório arquivo de paginação, disponibilizando essa memória para fins mais úteis (processos ou cache de arquivos). Portanto, embora possa haver algumas cargas de trabalho com melhor desempenho sem arquivo de paginação, em geral, ter uma significará que mais memória utilizável estará disponível para o sistema (lembre-se de que o Windows não poderá gravar despejos de memória do kernel sem um arquivo de paginação com tamanho grande o suficiente para segurá-los).

Eu realmente gosto dos artigos de Mark.


+1, simples para o link Mark Russinovich. Vale ressaltar que o win7 até exibe uma notificação para indicar que você não poderá "rastrear problemas do sistema" se desativar o arquivo de troca.
cgp 21/03

13

A melhor resposta que consigo pensar é que, sob uma carga normal, você pode não usar os 8 GB, mas são as cargas inesperadas que você terá problemas.

Com um arquivo de paginação, o sistema funcionará pelo menos lentamente quando começar a atingir a página. Mas se você remover o arquivo de paginação, ele simplesmente morrerá (pelo que sei).

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

De qualquer maneira - eu recomendaria manter pelo menos um pequeno arquivo de paginação; mas outros me corrijam se eu estiver fora da base.


4
Eu iria um pouco mais longe e não limitaria o arquivo de paginação. Isso não está realmente melhorando as coisas. Deixe as janelas fazerem isso ... elas sabem melhor.
267 Michael Haren

1
Apenas tentei usar o Media Player Classic para carregar um arquivo mkv de 6 GB. Ele me tirou minha memória RAM e do arquivo de paginação. Voltou ao VLC bem rápido. +1 para "você nunca sabe o que encontrará". Eventualmente, o MPC travou e minha RAM foi restaurada, mas e se você receber uma DLL em um software de terceiros com um vazamento de memória? Você terá muito mais quilometragem se tiver alguma memória suportada por disco para ajudá-lo.
Mp420

1
Além disso, qual é a vantagem de ter 8 GB se você tiver que viver com medo constante de usá-lo ?!
David Schwartz

O "manter pelo menos um pequeno arquivo de paginação" me parece um pouco estranho, pois não está claro como o Windows o usará. Por exemplo, ele pode debulhar ainda mais que um arquivo de paginação maior que ofereça mais espaço - suponho que, mas enquanto não houver uma fonte confiável, eu consideraria os conselhos de pequenos arquivos de paginação possivelmente prejudiciais e, em vez disso, recomendaria uma prática padrão.
Mafu

6

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

O arquivo de paginação serve para muitas coisas, incluindo a geração de um despejo de memória no caso do BSoD (Blue Screen of Death).

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

Eu acho que não permitirá que você fique em hibernação / espera sem um arquivo de paginação (mas ainda não tentei).

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 um arquivo de paginação do que com um arquivo de paginação (mesmo com bastante RAM). Mas não consigo encontrar a causa raiz.

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


Você quer dizer isso? blogs.technet.com/markrussinovich/archive/2008/11/17/… Nesse caso, seus conselhos são fracos. Ele diz que o arquivo de paginação aumentará o desempenho, porque se daria mais RAM a outros aplicativos. Verdade, se você não tem muito carneiro. Mas se você tiver mais que o suficiente, o arquivo de paginação nunca será mais rápido.
Pyrolistical

foi em um vídeo sysinternal com Salomon. Ele tinha algo a ver com a página do kernel piscina
Mathieu Chateau

Você não pode postar uma "resposta" quando não tem ideia: eu tenho um laptop Windows Vista de 32 bits com 4 GB de RAM e o coloco em modo de espera o tempo todo. Você pode pelo menos restringir-se a fornecer respostas a perguntas para as quais você realmente sabe respostas?
PP.

O que o PP tentou dizer: O processo de hibernação usa um arquivo separado do arquivo de troca, portanto, este não é um problema.
Mafu

Pirolítico, provavelmente é tarde demais para você ver isso, mas inverta sua afirmação e faça a seguinte pergunta: quando o arquivo de paginação atrasa alguma coisa? Uma boa resposta para isso provaria sua teoria.
quux

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 ao tentar ativar o serviço WCF : A verificação das portas da 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.

    Como 3.7 GB é inferior a 5% dos 8 GB, eu nunca vou saber!

  2. Programas Getting Close para evitar o diálogo de perda de informações : Quando 75% da minha RAM é usada, recebo uma caixa de diálogo informando para fechar os programas. Você pode desabilitar isso com uma modificação do registro (ou possivelmente desabilitando o 'Serviço de Política de Diagnóstico').

No final, decidi ligá-lo novamente. O Windows puro e simples nunca foi projetado para ser usado sem um arquivo de paginação. É otimizado para ser executado com paginação, não sem. Se você planeja usar mais de 75% da sua memória e não deseja mexer no seu registro - talvez não seja o seu caso.


1
O erro do ASP.NET me parece ser um problema de 32 bits, mas se o número que você forneceu estiver correto (399556608 = 399.556.608), o erro estará correto - ~ 400 MB é aproximadamente 5% de 8 GB.
fencepost

@fencepost boa captura - deve ter lido isso como kb por algum motivo. estranho #
296 /

5

A única pessoa que pode lhe dizer se seus servidores ou estações de trabalho "precisam" de um arquivo de paginação é você , com o uso cuidadoso do monitor de desempenho ou como é chamado hoje em dia. Quais aplicativos você está executando, qual uso eles estão vendo e qual é o maior uso possível de memória que você pode ver?

A estabilidade vale a pena comprometer a fim de economizar uma quantia minuciosa de dinheiro em discos rígidos menores?

O que acontece quando você baixa 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ê imaginou para descompactar o patch, e então? Se o seu antivírus decidir (corretamente) verificar esse pacote muito grande, que tipo de uso de memória será necessário enquanto descompacta e verifica esse arquivo de correção - espero que o arquivo de correção não contenha nenhum arquivo, porque isso absolutamente números de uso de memória de assassinato .

O que posso dizer é que a remoção do arquivo de paginação tem uma probabilidade muito maior de machucar do que ajudar. Não vejo uma razão para você não ter um - tenho certeza de que pode haver alguns casos especializados em que estou errado nesse caso, mas essa é outra área.


2

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

A principal questão é se o uso total previsto de memória para todos os aplicativos e o uso do sistema operacional se aproxima de 8 GB. Se o uso médio de mem for 2 GB e o máximo de memória for de 4 GB, não será possível ter um arquivo de paginação. Se o uso máximo de memória estiver próximo de 6 a 7 Gb ou mais, é recomendável ter um arquivo de paginação.

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


Você não quer dizer memória total potencialmente disponível? A maioria dos sistemas de paginação mantém cópias de páginas de captura instantânea.
Jé Queue

Observe que também há a memória do pool paginado, que pode esgotar, mesmo que você use apenas 2 GB de memória física.
Tamara Wijsman

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. Menos ainda parecem saber como o Windows trata o arquivo de paginação. Não "apenas" enche quando você fica sem memória RAM física. Aposto que a maioria de vocês nem sabia que sua RAM "grátis" é usada como cache de arquivos!

Você pode obter grandes melhorias de desempenho desativando o arquivo de paginação. Seu sistema ficará 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 inicialização dos períodos de espera ou inativos longos serão muito mais rápidos.

Se a Microsoft realmente permitir que você defina uma opção pela qual o arquivo de paginação SOMENTE seja usado quando a RAM física estiver fora da memória (e todos os buffers de arquivo foram descartados), eu pensaria que havia pouco a ganhar ao desativar o arquivo de paginação.


Desabilitar o arquivo de paginação resulta na degradação do desempenho, você não verá nenhuma melhoria no desempenho ao introduzir a carga de memória. O uso do arquivo de página apenas quando estiver sem memória não é certamente o que você quer ...
Tamara Wijsman

-3

Isso é antidotal, mas executamos um Windows Server 2003 Terminal Server para cerca de 20 usuários, com 10 a 15 logins por vez e com 8 GB de RAM. Não executamos com um arquivo de paginação e nosso servidor é executado mais rapidamente do que antes. Obviamente, isso não é uma solução para tudo, mas funcionamos dessa maneira há dois anos e não tivemos problemas que eu saiba.


1
Você tem problemas, mas não os percebe; considere como um aumento na carga de memória pode diminuir a solicitação simultânea. Permitindo que o arquivo da página faz com que tais momentos mais snappier ...
Tamara Wijsman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.