Colocar a pasta swapfile & temp em ramdisk é uma boa idéia no Windows 7 de 64 bits com muita RAM?

16

Quero que meu Windows execute o mais rápido possível. Se eu tiver 12 GB de RAM no Windows 7 de 64 bits, CPU quad core e todos os aplicativos caberem na memória, o arquivo de troca será usado para alguma coisa? A questão é se é uma boa ideia colocar o arquivo de troca em um disco RAM.

Um disco RAM ajudaria de alguma forma ou o Windows utilizaria de forma inteligente toda a memória disponível para todo o seu trabalho?

Também estou pensando em colocar a pasta temporária em um disco RAM. Sei que o disco RAM é uma memória volátil e não me importo com o conteúdo se ele for perdido.

Tony_Henrich
fonte
O título me fez rir um pouco, mas, na verdade, se [...] todos os aplicativos couberem na memória, o arquivo de troca será usado para qualquer coisa é uma boa pergunta!
Arjan
O arquivo de paginação - não é um "arquivo de troca" - será usado conforme necessário para permitir que os programas aloquem espaço de endereço virtual além do que a RAM por si só permitiria. Isso é necessário mesmo que, após a alocação, eles realmente usem o máximo possível na RAM.
Jamie Hanrahan

Respostas:

7

Concordo que colocar o arquivo de troca em um ramdisk não faz sentido para um sistema operacional de 64 bits. No entanto, se um tiver o WinXP de 32 bits, o Windows poderá "ver" apenas os primeiros 3,5 GB de RAM. Se alguém tiver mais RAM, digamos, 9 GB, a RAM acima de 3,5 GB é completamente desperdiçada pelo WinXP. No entanto, usando um programa como o SuperSpeed ​​RamDisk Plus, pode-se usar a memória acima de 3,5 GB como ramdisk - e colocar o arquivo de troca lá em cima faz muito sentido (novamente, no XP de 32 bits, não no Win7 de 64 bits) )

Separadamente, a colocação de arquivos temporários em um ramdisk quase sempre faz sentido, em termos de desempenho, a menos que o tamanho previsto cause um grande impacto na RAM disponível para o sistema operacional.

Floont Artney
fonte
6

Colocar o arquivo de paginação em um ramdisk é uma ideia ridícula. Você precisa entender que apenas uma fração da paginação total envolverá o arquivo de paginação. A maioria das paginações será com arquivos executáveis ​​e outros mapeados, e um arquivo de paginação na RAM não fará nada para melhorar esse desempenho. E, graças à reduzida ram do sistema disponível, haverá mais dessa paginação. O resultado é que o acesso ao arquivo de paginação será mais rápido, mas os níveis gerais de paginação serão mais altos com uma redução no desempenho.

user43161
fonte
4

Eu não diria ridículo; para sistemas de 32 ou 64 bits.

Para começar com o óbvio, as janelas de 32 bits (a maioria dos sistemas em execução) simplesmente ignoram qualquer coisa acima de 4 GB. Como os Ramdisks podem usar o PAE e o endereçamento de memória de 36 bits, eles são a única maneira de tornar as áreas de alta memória úteis em sistemas de 32 bits.

A pergunta é: como podemos usar um disco rígido virtual extremamente rápido / mais seguro? Arquivos temporários vêm à mente e são bastante triviais de configuração, desde que você saiba como atribuir uma letra de unidade fixa no Windows. O mesmo com o cache do navegador. O interesse por estes é quádruplo:

  • Acesso / recuperação mais rápidos
  • Exclusão verdadeira
  • Suprime a maior parte do desgaste inútil na memória SSD cara.
  • Menos fragmentação de disco ..

Quanto ao arquivo de troca, parece óbvio que os sistemas de 32 bits têm muito a ganhar ao colocá-los na RAM não reclamada. Pode-se pensar em um programa com fome de memória, usando até 3 GB em si mesmo (com a opção de 3 GB no boot.ini) que provavelmente causará muitas trocas. Dois dos mesmos bônus ainda se aplicam: exclusão e desgaste reais no SSD. A fragmentação é um problema menor nos arquivos de troca.

Há mais: é bastante comum que programas mal escritos usem memória virtual, independentemente da quantidade de memória física disponível, causando acesso inútil ao disco. Isso vale para os programas de 32 e 64 bits. Eu até me deparei com programas que simplesmente não conseguem iniciar na ausência de um arquivo de troca.

Resumindo, embora faça sentido, não importa o que tenha um ramdisk abaixo de 4 GB e economize acesso inútil ao disco para cache de pastas e programas temporários, parece muito preferível instalar mais de 4 GB, sendo o preço da memória o que é, nos dois 32 ( com hardware habilitado para PAE) e sistemas de 64 bits e mova o arquivo de troca para lá.

Deve-se notar que muitos usuários profissionais de computadores ainda não conseguem 64 bits por razões de suporte de hardware.

O que seria ridículo, usar a mesma linguagem forte como acima, seria simplesmente rejeitar a idéia e confiar não apenas no manuseio de memória virtual da Microsoft (que é elogiado e com razão), mas também nos programadores de aplicativos que variam do guru de codificação de assembly ao idiota da linguagem de alto nível que trará o PC mais agradável e estável de joelhos apenas com o tratamento inadequado da memória. Eu já vi esse código em programas convencionais, aplicativos de produtividade, não é brincadeira!

Meu sistema principal possui um ramdisk de 8GB no XP / 32 e isso se mostrou útil. É muito trivial de configurar e devo dizer que o único programa que me causou dificuldades é o google chrome, cuja estratégia de instalação / atualização é difícil para o tweaker.

Você pode pensar em muitos usos úteis para ramdisks além desses; no meu caso, amostras de áudio para recuperar do disco em aplicativos ao vivo: coloque-os no momento da inicialização (dolorosamente lento) e obtenha acesso rápido às bibliotecas multiGB. Mas isso está fora do tópico :)

Esta é a minha própria experiência. Eu gostaria que as pessoas não destruíssem o valor de informações úteis pelo uso de linguagem forte desnecessária. Ridículo foi uma má escolha de palavras neste contexto, para dizer o mínimo.

user102648
fonte
3

Sim, os arquivos de paginação são usados ​​mesmo se houver muita RAM; mas a simples existência de um arquivo de paginação não é, por si só, um fator que afeta o desempenho do sistema . Colocar um arquivo de paginação em um disco RAM também é um absurdo. O ponto para um arquivo de paginação, afinal, deve ser um local para armazenar dados de página (transitórios) quando esses dados não estiverem atualmente na RAM . Os discos RAM estão na RAM…

Colocar arquivos temporários em um disco RAM é uma chaleira totalmente diferente, é claro.

JdeBP
fonte
1
Esse post não explica por que o sistema operacional precisa paginar qualquer coisa se o sistema possui toneladas de memória RAM e pode armazenar TUDO. O objetivo principal da paginação é abrir espaço para processos mais importantes, mas se a memória pode ser transitória e nova, antiga e raramente usada e qualquer coisa na memória, por que não manter tudo em memória RAM? Quanto aos lixões, não me importo com eles. Não consigo lê-los ou entendê-los, para que eles possam ser excluídos e não se preocupem em salvá-los, a menos que eu os envie à MS para análise.
Tony_Henrich
O outro artigo a que se refere também possui o argumento usual: "alguns" programas "podem" falhar, sem nunca especificar quais programas realmente são ou como podem falhar.
RolKau
@ Tony, os despejos de memória são difíceis para uma pessoa normal ler e interpretar, mas se você instalar as ferramentas de depuração da Microsoft, elas podem ser bastante informativas para descobrir por que um BSOD ocorreu. Se seu computador nunca travar, é claro que é irrelevante, mas eu achei os despejos de travamento extremamente úteis na solução de problemas de computadores travados no passado, portanto, não os descarte totalmente.
nhinkle
2
@Tony_Henrich "por que não manter tudo em memória ram" => porque se há algo que nunca (ou muito raramente) é acessado sentado na RAM, está desperdiçando esse espaço. Esse espaço poderia ser melhor usado para armazenar em cache os arquivos que são acessados ​​com frequência, proporcionando um aumento no desempenho da rede. Qualquer espaço físico de RAM que não seja usado ativamente pelo código ou dados do programa pode ser usado pelo sistema operacional para armazenar arquivos em cache - e é também por isso que não é uma boa coisa estar executando perto da sua capacidade total de RAM.
Bob
A maioria das pessoas que afirma que "o sistema possui toneladas de RAM e pode armazenar TUDO" nunca analisou o uso total do espaço de endereço virtual em sua máquina.
Jamie Hanrahan
1

Duvido que você veria muita diferença ao mover seu arquivo de paginação para ramdisk. Se você quiser forçar o Windows a usar o ram, poderá desativar o arquivo de paginação.

No entanto, notei uma grande diferença ao mover meus arquivos temporários do IE para um ramdisk e definir minhas variáveis ​​ambientais TEMP e TMP para apontar para o ramdisk.

Também corro o Google chrome com o sinalizador "-user-data-dir =" R: \ ChromeTEMP "para que ele armazene arquivos temporários no ramdisk. Isso fará com que ele esqueça suas configurações. Mas como eu uso o recurso de sincronização, ele não ' Depois da sincronização inicial, tudo voltou ao normal. E as telas de carregamento do skyrim ficam mais curtas depois de vincular a cópias de alguns arquivos no meu ramdisk.

Andrew
fonte
Livrar-se do seu arquivo de paginação (ou colocá-lo em um disco RAM) não "força o Windows a usar a RAM". Existem centenas de outros arquivos usados ​​para paginação e o Windows ainda estará paginando para e a partir deles.
Jamie Hanrahan
0

O Windows continuará usando o arquivo de troca, o que (para minha confusão, já que tenho uma configuração idêntica) não fez nenhum sentido para mim. No entanto, depois de desativar o arquivo de paginação, não vi melhorias reais no desempenho. Desde então, voltei a usar um arquivo de paginação, já que o Windows o usa para outras coisas que não a memória virtual (acho que também grava despejos de memória, quando você exibe a tela azul) que eu preciso. Eu também passei por meus 12 GB de RAM várias vezes e fiquei agradecido por ter o espaço de manobra.

Em resumo, o Windows ainda usará o arquivo de paginação, mas você não deve notá-lo como um problema de desempenho.

Quanto aos arquivos temporários, movê-los para um disco ram deve aumentar suas velocidades de acesso, embora você não precise de nada para persistir durante uma reinicialização / falha e que o driver ramdisk carregue e crie o ramdisk antes de qualquer aplicativo ou o sistema precisa usar a pasta temp.

Darth Android
fonte
Eu acho que mini-despejos são salvos em alguma pasta especial no Windows. Não tenho certeza sobre despejos completos, mas talvez eles sejam salvos no arquivo de paginação. Mas não me importo de colocar um arquivo de paginação em qualquer unidade não raiz. Só espero que o Windows seja eficiente o suficiente para usar o máximo possível de memória RAM e use o arquivo de paginação somente quando for absolutamente necessário.
Tony_Henrich
@ Tony: Eles são salvos no arquivo de paginação até você reiniciar, quando são salvos na pasta Minidump em% SYSTEMROOT%.
Hello71
1
A Microsoft afirma que a desativação do arquivo de troca provavelmente diminuirá o desempenho, mesmo em sistemas com alta memória. O gerenciamento de memória dos sistemas operacionais é projetado para troca.
Keltari
Observe que é possível fazer o Windows preparar despejos de memória em um arquivo dedicado, o que evita o requisito de que haja espaço livre / arquivo de paginação suficiente na unidade do sistema para armazenar os dados de despejo; consulte Como usar o valor do registro DedicatedDumpFile para superar as limitações de espaço na unidade do sistema ao capturar um despejo de memória do sistema - Ntdebugging Blog
SamB
0

Na verdade, não é uma má ideia na minha opinião.

Logicamente, as pessoas entendem mal "arquivo de paginação" ou mais corretamente "arquivo de troca" como RAM. É verdade que o arquivo de troca contém dados semelhantes aos da RAM. Mas o Windows não usa isso como RAM. Como você vê hoje no crescente mundo multitarefa em que vivemos, o Windows foi projetado antigamente para lidar com a quantidade limitada de RAM, escrevendo constantemente entre o arquivo de swap e a RAM.

O arquivo de troca é sempre usado pelo Windows, pois o ganho de desempenho é mais perceptível em computadores mais lentos antigos, com poucos programas em execução. Quando você abre uma janela, o programa é trocado pela RAM, enquanto você trabalha nela.

Digamos que você esteja escrevendo uma carta no Word. Se você acabou de iniciar esse programa com muitos programas \ janelas em segundo plano, ele tende a ser lento, mas depois é executado mais suavemente após alguns segundos. Em seguida, quando você muda para o Internet Explorer, ele fica lento e fica mais rápido porque estava no arquivo de paginação e depois trocado pela RAM, enquanto todos os processos em segundo plano são carregados no arquivo de paginação.

Agora vamos apresentar o disco RAM ao Windows. Coloque o arquivo de troca no ramdisk em vez do HDD e você aprimorou a capacidade do Windows de realizar várias tarefas, pois a RAM é mais rápida que o HDD / disco rígido. No entanto, isso não ajudará em um sistema mais antigo, a menos que você compre unidades de RAM físicas - e talvez seja necessário definir o arquivo de paginação novamente no Windows, pois, sem energia, ele será excluído.

Os arquivos de paginação são inúteis para PCs mais novos com 8, 16, 32, 64 Gigs de RAM.

Adam R.
fonte
3
A questão ainda é por que o Windows trocaria alguma coisa se houver muita memória para armazenar tudo. não é como se a memória "se cansasse" de manter os aplicativos e precisas de uma pausa.
Tony_Henrich
Na verdade, "arquivo de paginação" está mais correto que "arquivo de troca"; tecnicamente, a troca é o local onde você envia TODA a memória de um determinado processo para o armazenamento secundário ...
SamB
Motivo: porque é agressivo em remover o "conjunto de trabalho". Mas não é realmente trocado para fora , e é puxado para trás quando necessário, sem ter que ler o disco.
JDługosz 12/10
"o arquivo de troca é sempre usado pelo Windows " - incorreto. Mesmo que use o arquivo de paginação, ele grava as coisas lá que são decididas, por um bom motivo (como você não o toca há muito tempo), que não vale a pena mantê-lo na RAM. Por que você acha que tem mais informações sobre o que manter na RAM do que o Windows? De qualquer forma, como já foi dito, colocar um arquivo de paginação na RAM é como dar a si mesmo um empréstimo e depois pagar a si próprio dos recursos do empréstimo. Você não tem mais dinheiro, apenas gastou muito esforço inútil.
Jamie Hanrahan
0

Muitos de vocês céticos esquecem o limite de RAM do Windows de 32 bits e perdem o fato de que não é possível colocar mais código e dados na RAM do que os 3,5 GB. Ou você simplesmente acredita que estamos tentando "cortar", digamos, 2 GB dos 3,5 GB acessíveis - para um arquivo de paginação rápido, com o custo de reduzir a memória disponível para 1,5 GB. Isso certamente não faz sentido, mas essa não é a nossa ideia . Nossa idéia é dedicada aos usuários do Windows de 32 bits, que possuem PCs com MAIS RAM do que o limite de 3,5 GB. Por exemplo, uma máquina equipada com 8 GB, executando XP de 32 bits ou Vista ou 2003.

Quando você trabalha duro com vários aplicativos simultaneamente, o sistema geralmente enfrenta a condição de esgotar a memória. Para evitar erros críticos, o sistema é forçado a armazenar alguns dados de aplicativos em execução em segundo plano no arquivo de paginação. Normalmente, isso significa gravar dezenas e centenas de MB no disco rígido. E lembre-se - isso acontece com frequência quando você realmente usa multitarefa (hoje em dia comum, além de aplicativos que consomem memória). E quando você coloca um aplicativo em segundo plano em primeiro plano - outro lote de dados da RAM deve ir para o HDD, apenas para liberar espaço na RAM para o lote anterior retornar do HDD (desta vez escrevendo e lendo muitos MBs da unidade de disco). Basta observar o LED vermelho de atividade do disco rígido - ele acende mais do que permanece apagado (o disco rígido funciona muito).

Agora imagine todas essas operações redirecionadas para o EXTRA RAMdisk (RAM extra, além da área de memória operacional do sistema, que permanece com o mesmo tamanho - máximo).

  • Dessa forma, ele funciona 1000 vezes mais rápido (operações de RAM comparadas ao HDD), portanto o tempo de troca se torna marginal;
  • Seu HDD funciona muito menos do que normalmente, fica quieto, frio e a vida útil se prolonga notavelmente.

Não acredito que seria inútil em termos de desempenho, sem mencionar a confiabilidade do disco rígido.

OK, a maioria das máquinas construídas na era XP não eram baseadas em placas-mãe capazes de suportar mais de 4 GB de RAM. Então eu entendo que existem poucos caras por aí que realmente se importam / precisam e entendem a idéia. Mas agora...

BEM-VINDO À ERA DA VIRTUALIZAÇÃO! Cada vez mais vocês têm a sorte de possuir uma máquina com bastante memória RAM. Um novato pode configurar seu sistema host para atribuir 4 GB ao Windows convidado de 32 bits e ainda ter muita RAM. Seria realmente precioso, então, enriquecê-lo com um disco de 4 GB de RAM, atribuído ao mesmo sistema operacional convidado, dedicado ao arquivo de paginação, sem custo do espaço de memória RAM do hóspede!

Um servidor que eu supervisiono tem 12 GB. Em vez de comprar um novo sistema (64-2008 mais CALs!), Eu poderia atribuir 8 GB para convidado - virtual 32-2003 e tentar testar os discos de RAM do software. No entanto, não confio neles, pois parecem ser hacks e não gosto de arriscar a estabilidade. É por isso que estou procurando uma solução para preparar o Ramdisk do Linux do meu host como um dispositivo de bloco e formatá-lo para FAT ou NTFS, a fim de torná-lo aceitável para o disco virtual do SO convidado e colocar o arquivo de paginação nele. Acredito que meu servidor aumentaria e economizaria muito esforço em disco.

Onde eu estou errado? Greetz!

Slawek
fonte
1
Bom argumento sobre virtualização, mas sem a virtualização, um ramdisk não permite acessar mais ram do que você pode endereçar normalmente. Sem o PAE, são cerca de 3,5 GB, mas o NT 4.0, o win2k e as edições pro / server do xp suportam o PAE, permitindo até 64 gb de ram. Como você pode usar todo esse ram, é melhor deixar o sistema usá-lo como achar melhor, inclusive para armazenar arquivos em cache, em vez de alocá-lo a um ramdisk, o que limita o sistema a usá-lo apenas para manter páginas particulares trocadas , que não inclui arquivos de programa e dados de arquivo em cache.
Psusi 07/08/2012
Isso soa como um discurso retórico.
bwDraco - Restabelece Monica
Se o sistema operacional decidiu que um determinado conjunto de dados não vale a pena manter na RAM, coloque-o no arquivo de paginação ... por que você acha que possui informações suficientes para dizer justificadamente "não, mantenha-o na RAM de qualquer maneira", colocando seu arquivo de paginação em um disco RAM?
Jamie Hanrahan
0

Em relação à pasta temp, movê-lo para um ramdisk aumentaria a velocidade.

No entanto, há coisas a serem observadas:

  • perda de energia significaria perda de dados
  • nem todo aplicativo usa a pasta temporária fornecida pelo Windows, alguns usam seus próprios
  • se a pasta temp ficar sem espaço, os aplicativos ou o Windows poderão falhar
Keltari
fonte
0

Ramdisks são úteis para coisas como cache rápido da Internet do IE, Chrome e Firefox etc.
Colocar o arquivo de paginação em um Ramdisk em um sistema de 64 bits é inútil.

DisablePagingExecutive pode atender melhor a essas necessidades. Mas colocar o arquivo de paginação em um Ramdisk em um ambiente de 32 bits com mais de 4 GB de RAM é uma grande melhoria. No entanto, se o seu computador for um processador de núcleo único (apenas um de acordo com o gerenciador de tarefas), haverá melhorias (não se lembra exatamente quanto, já faz um tempo). Mas você também precisa definir o ClearPagefileAtShutdown para se livrar do erro na próxima reinicialização, porque o arquivo de paginação não estará lá.

O melhor uso para um Ramdisk que eu possa pensar é espelhar sua pasta de arquivos de programas (ou selecionar programas) no Ramdisk.

Ben
fonte
DisablePagingExecutive apenas desativa a paginação do executivo . A paginação de tudo o que normalmente seria paginado ainda acontece.
Jamie Hanrahan