O que há de errado com a desativação do arquivo de paginação do Windows?

15

As pessoas dizem que você sempre precisa de um arquivo de paginação e que isso aumentará o desempenho, mas meu Windows 7 está configurado para ser executado sem um arquivo de paginação. Eu simplesmente não entendo porque as pessoas dizem isso - eu tenho 6 GiB de RAM, e a única vez que cheguei perto de ficar sem memória RAM foi quando eu estava compilando o Chromium, para o qual eu habilitei temporariamente um arquivo de paginação.

Eu realmente preciso de um arquivo de paginação * para aumentar a velocidade em situações típicas? Por quê?

* Estou ciente de que os despejos de memória precisam de um arquivo de paginação. Eu nunca uso dumps de memória, então isso não importa.

    
por Mehrdad 20.05.2011 / 23:55

5 respostas

8

Um arquivo de paginação nunca aumentará o desempenho, mas também não o prejudicará (com o gerenciamento de memória adequado). A execução sem um arquivo de paginação, no entanto, só tenderá a aumentar a instabilidade do seu sistema em relação a aplicativos que solicitam memória que não está disponível para uso.

A menos que o seu sistema operacional seja particularmente ruim no gerenciamento de memória, um arquivo de paginação com 6GiB de memória deverá ser de pouca utilidade. Isso não quer dizer que não verá nenhum uso; IIRC MS Windows é um pouco louco quando se trata de paginação coisas mesmo quando há muita memória disponível. (Por que, eu nunca vou saber.)

No entanto, o que acontece quando você não tem o arquivo de paginação em uso pode ser motivo suficiente para ativá-lo: falhas graves. A maioria dos aplicativos espera receber a memória solicitada. Quando eles não, eles caem. (Ah, mas os velhos tempos de ter que viver em alguns milhares de bytes desapareceram ..., e para muitos desenvolvedores, também tem a prática de lidar com o gerenciamento de memória.)

Se um aplicativo for criado corretamente, ele falhará bem. (Com sorte, isso não falhará de jeito nenhum. Mas não conte com isso.) Com a maioria dos aplicativos, você terá uma falha fantástica em suas mãos. Além disso, quanto mais aplicativos você chegar mais perto desse limite, maior a probabilidade de ver uma instabilidade em todo o sistema.

Caso da minha própria experiência. Windows XP, 4GiB, sem arquivo de paginação. Perf foi ótimo. Até que começamos a chegar perto do limite de 4GiB. Então as coisas enlouqueceram: os aplicativos travavam, os itens do menu apareciam apenas parcialmente (ou nada), os botões não faziam nada, etc. Voltei para o arquivo da página, embora o desempenho fosse pior - a estabilidade geral era simplesmente melhor e mais importante.

Agora, talvez você não use nenhum aplicativo ou trabalhe em seus aplicativos que pressionem o 6GiB, mas posso pensar em algumas situações em que você pode se aproximar: edição de vídeo, edição de fotografia, mixagem e produção de áudio, etc. - essencialmente, qualquer coisa em que você esteja lidando com muitos dados (trabalhando ou fazendo streaming). Quando esses dados excederem seus recursos de memória, provavelmente será bom que seu aplicativo seja "poof".

    
por 21.05.2011 / 09:17
7

Este artigo de Mark Russinovich conta tudo o que você já fez queria saber sobre o arquivo da página.

Eu não sei se "cache" é o termo apropriado para usar em relação ao que o arquivo de paginação faz. Um cache é um ponto de espera temporário para dados rapidamente acessível. Um sistema operacional "falha" as coisas no arquivo de paginação quando há muita disputa pela RAM física. Portanto, é um substituto para o estouro de RAM para impedir que os programas travem com dificuldade devido à falta de memória. Mas eu acredito que o Windows tenta colocar coisas que não foram acessadas em algum momento no arquivo de paginação (e o Linux também pode fazer isso), então, nesse sentido, é um cache, mas não é realmente sua função principal.

De qualquer forma, leia o artigo. Ele lhe dará boas orientações sobre o que definir seu arquivo de paginação para. Como diz o @Sandeep Bansal, pode haver um jogo ocasional que exige que você tenha um como parte de uma "verificação de requisitos" para poder ser executado (mas eu não sei de nenhum).

EDIT: Este exemplo pode ajudar você a entender o papel do arquivo de paginação:

Digamos que você tenha 512 MB de RAM. Você tem vários programas abertos, incluindo um navegador minimizado que consome 250MB de RAM, e o uso total de RAM de tudo que está sendo executado naquele momento é de 500MB.

Então, você inicia outro programa (digamos, um processador de texto) que deseja alocar 150MB de RAM. Fora da memória. No entanto, se tivermos um sistema de paginação, as páginas de memória que contêm seu navegador minimizado poderão ser paginadas para o disco. Então, o novo programa pode carregar.

Agora, digamos que você queira voltar ao navegador depois de um tempo. Bem, é preciso "paginar" o que acabou de enviar para o disco. Se houver RAM livre suficiente naquele momento, isso pode acontecer sem problemas. Se não houver, outra coisa deve ser paginada primeiro. Se houver muitos programas competindo pela CPU e houver paginação constante, as coisas ficam lentas e você tem a condição conhecida como "debulhar". Todo esse paging in e out causa um desempenho mais lento, mas evita que os programas sofram falhas "hard" devido a erros de falta de memória. Essa é a finalidade do arquivo de paginação. Paginação excessiva, ou seja, "thrashing" provavelmente não é melhor que um programa simplesmente desistindo porque ele não consegue mais RAM a maior parte do tempo.

Agora, você pode ver como existem algoritmos para antecipar o que pode não estar sendo usado em um determinado momento, então o sistema operacional pode "pré-página" coisas que ele não acha que serão ser usado imediatamente. Então, isso representa o Windows usando o arquivo de paginação onde ele existe mesmo que ele tenha RAM suficiente. Está tentando disponibilizar o máximo de RAM possível. O Windows é como o Linux, onde a RAM livre atua como um cache de disco, portanto, se o ato de equilíbrio for reproduzido corretamente, ele pode contribuir para o desempenho geral. Isso tudo faz parte do design do sistema operacional e por que são necessários 10 anos para obter um bom sistema operacional de milhares de programadores.

Então, para realmente responder à sua pergunta, é a única coisa errada ao desativar o arquivo de paginação. Voltando ao exemplo que eu forneci, sem o arquivo de paginação, você simplesmente seria incapaz de iniciar seu navegador, ou programas mal escritos que não são programados defensivamente para antecipar erros do OOM podem agir de forma muito estranha.

    
por 21.05.2011 / 01:37
2

Um arquivo de paginação não é apenas para que os despejos de memória sejam armazenados, mas não é feito essencialmente para isso.

O arquivo de paginação existe para que ele possa armazenar dados que a RAM não precisa armazenar, é como um cache para itens que não precisam existir na memória, fornecendo assim mais RAM para outras coisas.

Você está certo de que talvez não seja necessário um arquivo de página se tiver 6 GB de RAM, mas talvez precise de um arquivo de página para determinados itens, lembro que alguns jogos exigem um arquivo de página e também pode ser útil se houver é um.

Não há problema em criar um arquivo de 500MB para evitar problemas se um determinado processo precisar.

    
por 21.05.2011 / 00:03
1

O primeiro passo é entender o que é um Cache, ou melhor, para que os diferentes caches são usados. A CPU tem um pequeno cache interno que permite armazenar resultados OP, estados de bandeira e endereços calculados. Em um dual core, acredito que o cache interno é de cerca de 1mb. É extremamente rápido, acessível apenas pelos internos da CPU e o mais afetado pelo calor em uma CPU com overclock.

O cache de nível 2 atua como um buffer de alta velocidade para transações de CPU para memória e também mantém encadeamentos de código coletados por pré-busca. Em um dual core, acredito que uma instalação tética teria 6mb de cache lvl2. É muito rápido, embora seja mais lento que a memória cache interna, é acessível apenas ao controlador de memória e CPU, e reside em uma linha dedicada no barramento.

Um arquivo de paginação é de fato um cache, pois armazena dados que podem ou não estar presentes na memória. Um O / S pode usar o arquivo de paginação para várias tarefas, uma das quais é salvar o estado atual de um arquivo de dados que ainda não foi confirmado no disco. Quando um arquivo de paginação não existe, cabe ao aplicativo de terceiros fornecer essa funcionalidade internamente. O problema com esse cenário é que muitos programas não se comportam bem quando se trata de coleta de lixo, e você fica com arquivos .temp espúrios sendo deixados em seu disco. Esses remanescentes não fazem parte do manifesto de instalação e podem impedir um procedimento de desinstalação, além de prejudicar a velocidade de acesso ao disco.

Minha opinião é que normalmente é bom ter um arquivo de swap. De fato, se o seu sistema é muito populado com o Ram e ele é dedicado a uma tarefa específica, e esse aplicativo cuida de todas essas coisas, um arquivo de swap pode não ser necessário. Um exemplo pode ser um Arcade Video Game que roda na plataforma Windows, estes são normalmente instalados com apenas os drivers necessários para os dispositivos presentes e não são propensos a sofrer de contenção do driver. Na maioria das vezes, a maioria dos aplicativos não cuida de todos os possíveis problemas que podem surgir e especialmente aqueles que incluem impacto de outros aplicativos de terceiros e contenção de drivers.

Embora você possa notar uma baixa a moderada diminuição no desempenho no curto prazo de adicionar um arquivo de paginação, o desempenho a longo prazo deve permanecer consistente. Não ter um arquivo de paginação pode parecer mais rápido no começo, mas com o tempo o desempenho irá degradar consideravelmente.

Steven Malm, MCP.

    
por 22.05.2011 / 19:17
0

Experiência pessoal

Neste momento, meu laptop com 8 GB de RAM tem problemas para impedir a criação / uso do arquivo de paginação. Minha vida é o inferno. Eu recebo constantemente avisos de "Baixa memória", falhas de aplicativos etc. Usando 3 programas que comem 1-1,5 GB cada (digamos, navegador da web, Visual studio com plugins especiais, etc.) está andando em gelo fino.

Outro argumento

O uso de dados do cache de RAM físico é muito rápido. Quanto mais RAM física "livre" você tiver, maior será o cache. Quanto mais dados inativos o sistema operacional puder passar da RAM física para o arquivo de paginação, mais RAM física será liberada para caches de dados acessados com frequência.

Suponha que você jogue algum jogo que carregue os dados de localização quando mudar de local. Você também tem um navegador que sai, digamos, de 2 GB para o jogo, o que é suficiente para um único local. Sem um arquivo de paginação, toda vez que você mudar de local, os dados serão lentamente carregados do HDD. Com um arquivo de paginação, os dados do navegador da Web não utilizados serão enviados para o arquivo de paginação e a RAM física preciosa será usada para armazenar os dados em vários locais, resultando em um carregamento de local muito mais rápido.

    
por 18.06.2015 / 23:22