Devo desabilitar o arquivo de troca se eu tiver muita memória RAM ou devo movê-la para uma unidade RAM virtual?

92

Imagine que tenho toneladas de RAM. Vamos dizer 64GB. Isso é muito para PCs de jogos. Agora, a localização padrão de um arquivo de paginação no Windows é na unidade principal do sistema operacional, seja HDD ou SSD, que são mais rápidos em geral, mas ainda não tão rápido quanto a RAM.

Algo me diz que desabilitar o arquivo de paginação no disco rígido ou criar uma unidade RAM virtual e permitir que o arquivo de paginação esteja lá poderia fazer com que o Windows mova toda a memória virtual para a RAM e aumente o desempenho do sistema, mas não sou muito conhecedor dessa área, o que pode não ser verdade.

Eu tentei os dois, mas não pude analisar os resultados para chegar a uma conclusão definitiva com o meu nível de conhecimento em coisas da memória.

Isso funcionaria? Se não, por quê?

    
por user1306322 11.09.2014 / 10:34

12 respostas

132

Não importa quanta memória RAM você tenha, você quer que o sistema seja capaz de usá-lo eficientemente. Não ter nenhum arquivo de paginação em todas as forças do sistema operacional para usar a RAM ineficientemente por dois motivos. Primeiro, ele não pode tornar as páginas descartáveis, mesmo que elas não tenham sido acessadas ou modificadas em um tempo muito longo, o que força o cache de disco a ser menor. Em segundo lugar, é preciso reservar RAM física para alocar alocações que provavelmente nunca precisarão dela (por exemplo, um mapeamento de arquivo modificável e privado), levando a um caso em que você pode ter muita memória RAM livre e, no entanto, as alocações são recusadas evitar comprometer demais.

Considere, por exemplo, se um programa faz um mapeamento de memória privada gravável de um arquivo de 4GB. O sistema operacional tem que reservar 4 GB de RAM para este mapeamento, porque o programa poderia modificar cada byte e não há espaço, exceto RAM, para armazená-lo. Então, imediatamente, 4GB de RAM é basicamente desperdiçado (ele pode ser usado para armazenar em cache páginas de disco limpas, mas é sobre isso).

Você precisa ter um arquivo de paginação se quiser obter o máximo da sua memória RAM, mesmo que nunca seja usado. Ele age como uma apólice de seguro que permite que o sistema operacional realmente use a RAM que possui, em vez de ter que reservá-lo para possibilidades que são extraordinariamente improváveis.

As pessoas que criaram o comportamento do seu sistema operacional não são tolas. Ter um arquivo de paginação dá ao sistema operacional mais opções, e ele não fará as más.

Não adianta tentar colocar um arquivo de paginação na RAM. E se você tiver muita RAM, é muito improvável que o arquivo de paginação seja usado (ele só precisa estar lá), portanto, não importa quão rápido o dispositivo esteja.

    
por 11.09.2014 / 17:43
30

Você está totalmente correto em sua suposição.

Os algoritmos de gerenciamento de memória são muito complexos e, por qualquer meio, não são perfeitos. Então, a troca ocorre mesmo quando há muita RAM extra. Em alguns sistemas, como Linux , você pode controlar swappiness , em outros você não pode. Ao trocar os dados quando ainda há bastante RAM, o sistema, à sua maneira, se prepara para a situação em que pode ficar sem memória RAM.

Portanto, desabilitar a funcionalidade de troca pode dar a você uma melhora no desempenho, porque você só estará usando a RAM, que é mais rápida, como você já disse.

Uma coisa a considerar (e você já mencionou isso) - você precisa ter RAM o suficiente para acomodar todos os programas que está executando, caso contrário, você corre o risco de executar out of memory . Neste caso, o desempenho irá cair, alguns processos podem ser finalizados pelo sistema operacional e o sistema pode sofrer travamento / congelamento. (leia mais sobre isso aqui )

Em algumas máquinas, especialmente aquelas que mantêm o arquivo de troca no HDD e não no SSD, o efeito de desabilitar a troca é muito perceptível. Em outros, não é tão óbvio. Mas mesmo se você não obtiver melhorias óbvias, pense nisso de outra maneira, desabilitando a troca, você economizará espaço em disco no seu SSD.

Ao desabilitar a troca, você também evitará que os algoritmos de memória façam uma operação desnecessária - movendo dados da memória RAM para a troca e vice-versa - no caso de SSD isso evitará desgaste excessivo. E em qualquer caso, isso irá melhorar o desempenho, eliminando operações desnecessárias.

Além disso, leia:

por 11.09.2014 / 10:55
14

Você pode desativar com segurança o arquivo de paginação?

Se você ficar sem memória livre, incluindo a memória virtual, o sistema não poderá continuar a garantir a execução determinística e será encerrado. Antes que isso aconteça, o sistema operacional fará várias outras coisas, como matar programas que usam muita memória. O que eu quero dizer é que a memória é sempre finita, e todos os sistemas operacionais podem lidar com isso. Portanto, limitar o total de memória disponível a 64 GB não prejudicará o Windows - muitos sistemas não podem ir além de 8 GB, mesmo com um arquivo de paginação, porque com 1 ou 2 GB de RAM, o arquivo de paginação geralmente é muito menor que 6 ou 7 GB. Deve-se notar que, contanto que você tenha uma quantidade excessiva de RAM não utilizada, a sobrecarga do SO mantendo um arquivo de paginação não será mensurável.

Faz sentido colocar o arquivo de paginação em um ramdisk?

Para aumentar a memória disponível, a maioria, se não todos os sistemas operacionais avançados, usam algum tipo de arquivo de swap onde eles pegam alguma memória que está na RAM e não foi acessada por um tempo, escreva a memória no disco rígido (swapfile aka < href="http://en.wikipedia.org/wiki/Paging#Windows_NT"> pagefile ), e apague a memória da RAM para que mais memória rápida esteja disponível. O swapfile é usado para estender o tamanho máximo da memória além do tamanho da RAM disponível.

Portanto, usar um disco virtual (que reduz a memória disponível pelo tamanho do disco virtual) para hospedar o arquivo de troca (que aumenta a memória disponível pelo tamanho do arquivo de troca) funcionará, mas não fará muito sentido. Ele não oferecerá mais memória do que desabilitar o arquivo de paginação, ainda assim exigirá que o sistema execute algoritmos de paginação.

    
por 11.09.2014 / 10:52
8

Para reiterar o que os outros disseram, mover a troca para um disco RAM direto é um tanto inútil (no caso mais comum, veja abaixo). Consegue-se que em certo ponto, quando o sistema está faminto de memória livre, alguns dados são movidos da RAM para a RAM de uma maneira ineficiente.

Ter swap no HDD / SSD permite que o sistema operacional limpe algumas páginas RAM completamente não utilizadas e use o espaço liberado para, e. cache de arquivos ou outros buffers do sistema. Você pode não perceber que o sistema aloca menos desses buffers de RAM porque você não tem memória virtual disponível sem um arquivo de paginação; Então, na verdade, você pode estar diminuindo seu desempenho desativando a troca.

No entanto, um disco RAM compactado como unidade de swap, uma unidade ZSWAP, pode ser benéfico em casos de borda (onde você pode precisar de apenas alguns MB RAM adicionais para evitar a troca para HDD) melhorando a eficiência do espaço de um segmento de RAM até certo ponto.

    
por 11.09.2014 / 17:42
4

Se você não tiver um arquivo de paginação, então no caso de um BSOD (travamento) o Windows não poderá gravar o arquivo de despejo de memória. Isso significa que você não poderá analisar o problema usando as ferramentas apropriadas.

Ter o arquivo de paginação na RAM é quase inútil, já que pode ser perdido na falha.

Para obter mais informações, consulte o artigo da Microsoft Entendimento Crash Dump Files .

    
por 07.02.2015 / 21:55
4

Para Windows, da boca dos cavalos:

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).

link

  • memória utilizável - embora isso recomende ter memória virtual, também sugere que você precisa de quantidades realmente grandes de RAM para se beneficiar de não ter nenhum arquivo de paginação / memória virtual. Eu tenho 4GB de RAM 128GB SSD sem arquivo de página, mas eu usá-lo para navegação na web e digitando documentos do Word.
por 04.03.2016 / 12:32
3

Não desative o arquivo de troca Não é apenas para quando você ficar sem memória. Não há ganho de desempenho direto ao desativá-lo , o Windows somente lê quando necessário, ele grava nele o tempo todo, para que fique pronto sempre que for necessário.

Você pode reduzi-lo para cerca de 2/3 do tamanho da memória se tiver mais que cerca de 4 GB, porque armazena a imagem da memória compactada. Você pode colocá-lo em seu disco rígido mais lento que não está sendo acessado por outro disco rígido se você não tiver espaço em um SSD. Mas é benéfico ter um em algum lugar.

Veja esta resposta para mais informações sobre o motivo. link

    
por 11.09.2014 / 17:28
3

Em teoria, colocar o arquivo de paginação na memória RAM não faz sentido algum, porque você está apenas esgotando o que supostamente ganha, e o Windows é construído com base no pressuposto de que o arquivo de paginação não será usado para tais finalidades.

Na prática, porém, o design e a filosofia defeituosos podem chegar até mesmo ao kernel do Windows, e o gerenciamento de memória da Microsoft não é necessariamente perfeito. Muitos descobriram que colocar o arquivo de paginação em um Ramdisk realmente resulta em um aumento de desempenho , contanto que você tenha uma boa quantidade de memória.

Eu compilei um post que mostra uma coleção de tais usuários de um tópico do fórum single que descobriu que apesar de ter grandes quantidades de RAM livres, o arquivo de paginação ainda está sendo usado:

link

    
por 07.02.2015 / 16:07
2

A conversão de um SO que foi projetado em seu núcleo para não usar o swap é muito mais difícil do que parece.

Macs modernos têm uma partição de recuperação - parte da unidade principal com um sistema operacional despojado que pode reparar ou restaurar o sistema principal. Nos dias de instalação do DVD eles rodaram um processo customizado, o sistema agora cria um disco RAM para a partição swap, já que não é garantido que um instalador tenha espaço em disco disponível. O SO inclui as estruturas necessárias para executar o software de manutenção incluído, que é idêntico aos utilitários disponíveis após a instalação. Muito menos trabalho para todos.

Limitar o sistema a um aplicativo por vez significa que ele nunca é usado, mas o SO espera que ele esteja lá.

    
por 13.09.2014 / 01:35
2

Se você tiver memória suficiente, a resposta seria sim, você pode desativar o swap. Swap foi criado para superar as limitações da RAM e tornar seu uso mais eficiente.

A questão agora é quanto de RAM é RAM suficiente? Não há resposta universal para isso e, por natureza, os sistemas estão pendurados na memória. Portanto, e a menos que você esteja executando em um ambiente muito específico e controlado, não desative o swap.

Qualquer outro tipo de ação, como colocar swap na RAM, criará uma camada extra de complexidade e gastará memória que poderia ser usada diretamente.

    
por 15.09.2014 / 12:47
1

Meu sistema tem 24 GB de RAM, por esse motivo, desativei o arquivo de paginação para evitar o desgaste do meu SSD sem problemas. Eu criei recentemente um disco RAM, usando 4GB da minha memória para armazenar arquivos do Google Chrome Cache, apenas para ver se ele aumentaria o desempenho dos jogos online do Flash Player e da navegação geral na web. Eu tenho visto um aumento acentuado no desempenho deste experimento. Desde que eu tinha mais espaço disponível no meu disco RAM, eu habilitei o meu arquivo de paginação e definir o tamanho mínimo e máximo para 1 GB, e movi-lo para o disco RAM. Embora não possa dizer que houve algum aumento de desempenho, meu sistema parece estar mais estável.

    
por 07.02.2015 / 23:48
1

Mover o arquivo de paginação para a RAM é uma noção ridícula Basta desligá-lo e por mais RAM. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

Gerenciamento de memória é tratado pela CPU e se o arquivo de paginação está ativado ou desativado não faz diferença alguma em como as páginas são tratadas. É transparente para o Windows.

A prioridade da página não muda, as páginas serão descartadas da mesma forma. Arquivos de paginação são usados pela CPU como armazenamento secundário, não pelo sistema operacional. Não é nada mais do que cache de nível dois quando o nível um (RAM) se esgota.

Um exemplo rápido e muito sujo: minha máquina tem 16 GB de RAM e nenhum arquivo de paginação. 5 minutos atrás, com 13 GB em modo de espera e apenas 2 GB grátis, carreguei o Fallout 4. As páginas de baixa prioridade foram descartadas como Fallout carregado.

Por outro lado, o Blog de Technet de 2008 sobre Empurrar os Limites de Memória do Windows é muito enganador - eu diria até o ponto de engano. link Eu também estou duvidoso se até mesmo Mark escreveu, mas eu espero que não, pois isso mudaria minha perspectiva dele ...

Fwiw existem buracos no artigo que eu estou surpreso que ninguém escolheu considerando quantas vezes esse blog foi referir

  • O arquivo de paginação e seu local são manipulados pelo Windows, o trapping de acesso à memória a locais que foram paginados para fora do disco seria capturado pela CPU, mas entregue ao sistema operacional para recuperar a página do disco e carregá-la .

De qualquer forma, aqui não há uma descrição tão vaga:

O Windows não consegue alcançar endereços mais altos do que a CPU - não é possível.

Não importa o que o SO seja capaz, ele ainda é limitado pelo hardware em que ele roda .. porque o SO é, na verdade, a própria CPU (registradores internos).

OK, o arquivo de paginação é uma área no disco rígido que a CPU usa para o espaço de endereço físico estendido quando não pode usar mais memória física ou arquiteturalmente.

Na arquitetura x86 de 32 bits segmentada, por exemplo, existem dois segmentos de 2 GB de RAM.

Um é alocado para o kernel. Os outros 2 GB são para o modo de usuário. Essa é toda a RAM que a CPU pode usar com 32 pinos DRAM, mas um processo de 32 bits tem 4 GB disponíveis, então o que fazer. Bem, felizmente a CPU pode usar o armazenamento secundário AKA no disco rígido para armazenar os 2 GB extra de páginas. Porque tem registros internos. Os locais físicos em que as páginas virtuais referenciadas pelo processo não precisam ser armazenadas na RAM. Mas eles são armazenados em algum lugar pela CPU.

A CPU não pode dar todos os 4GB de RAM para o aplicativo, mas pode dar 4GB de endereço usando o HDD como cache secundário (que é tudo que o HDD realmente é)

As páginas são movidas para dentro e para fora da RAM através de seu mecanismo interno de paginação, mas isso não é o mesmo que um arquivo de paginação. Paginação sempre ocorre ....

O resultado final não é tão complicado assim. Nos últimos 15 anos, muitos usuários finais tiveram a impressão de que um arquivo de paginação é parte integrante do sistema operacional, não é. Nunca foi. Esse equívoco é parcialmente estimulado por corporações como a Intel e a Microsoft.

RAM é um dispositivo de armazenamento rápido, o Disco Rígido é um dispositivo de armazenamento mais lento, então essencialmente a RAM é cache de nível 1, o Disco Rígido é de Nível 2 (desconsiderando o cache da CPU para esta analogia). Ambos podem ser acessados pela CPU.

Se não houver RAM suficiente para a CPU armazenar as páginas necessárias, o HDD pode ser usado como um estouro. Se houver muita RAM, o PF é redundante.

Até o Core 2, os processadores Intel tinham um barramento DRAM de 32 pinos e 32 registradores significando que o processador tinha acesso a 4 GB de RAM e 4 GB de espaço em HD (arquivo de paginação). Esta é uma limitação de hardware de arquitetura, não uma limitação do Windows.

O total disponível para processos foi de 3,5 GB, porque uma tabela de páginas ocupa 512 MB. É por isso que o 3.5GB aparece no Windows com CPU da Intel (até o Core 2). Adicione uma GPU e ainda menos está disponível.

O Xeon pode acessar um total de 32 GB de RAM, 64 GB de espaço físico com HDD incluído (arquivo de paginação novamente). ( Isto ^ abrange PAE, -mais para vir com links adicionados ).

link

3a fonte de captura de tela: Interface Binária de Aplicação do Sistema V Versão do Esboço do Suplemento do Processador de Arquitetura AMD64 0.99.7

Pretendo continuar melhorando essa resposta e adicionando material de origem e informações relevantes. Eu gostaria de alcançar um equilíbrio entre informações insuficientes e muita informação técnica. Sugestões são bem-vindas. Por favor, não faça downvote só porque não pode ser escrito tão bem.

    
por 19.06.2017 / 04:17