Tenho 16 GB de RAM. Preciso de 32GB swap?

254

Eu li muitos lugares que a regra geral para o espaço de swap é dobrar a quantidade de RAM física. No entanto, 32 GB parece muito. Eu preciso tanto assim? Eu preciso disso com essa grande quantidade de RAM física?

    
por Tamás Szelei 16.06.2011 / 20:52

22 respostas

173

Depende inteiramente do que você planeja fazer com a máquina. Por exemplo, se fosse um servidor Sap, então sim, eu adicionaria 32gb swap (temos caixas no trabalho com 128gb de ram e 32gb de swap). Se você estivesse manipulando imagens e vídeos massivos, faria sentido ter uma pequena troca. 32gb é provavelmente um exagero.

No entanto, eu não diria troca zero.

No caso improvável de você ficar sem memória RAM - talvez abrindo um arquivo grande, percebe uma aba de execução longa no Firefox, não importa, nesse caso seu killer de OOM do kernel irá chutar e começar a matar aplicações para obter memória de volta. Nessas circunstâncias, é perfeitamente possível que você perca dados quando os aplicativos são mortos. No entanto, se você tiver um pouco de swap, o sistema continuará, pegando swap e permitindo que o sistema continue. O sistema fica mais lento à medida que a troca pesada acontece, você percebe e investiga antes que toda a troca seja esgotada. Também disco é muito barato, então por que não ter swap?

Qualquer um que diga "você não precisa de swap" sem perguntar o que está realmente fazendo com seu computador está fazendo suposições. Enquanto você pode muito bem fazer muito pouco com seu computador que come RAM, ainda é melhor fazer as perguntas sobre o que você está planejando fazer com ele antes de fazer o julgamento precipitado que você não precisa de swap. Na minha humilde opinião

    
por popey 16.06.2011 / 23:33
225

Aqui está uma recomendação muito boa do RedHat: Espaço de troca de sistema recomendado

Um trecho do mesmo link:

% bl0ck_qu0te%

Tabela atual (a partir de dezembro de 2017):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            At least 4 GB                  1.5 times the amount of RAM
64GB of RAM or more           At least 4 GB                  Hibernation not recommended

Tabela original:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 
    
por ssapkota 17.06.2011 / 00:22
53

Argh. As respostas neste post são muito erradas, e isso surge como um dos primeiros resultados em uma pesquisa no Google por "Quanto swap?"

Em primeiro lugar, um bom ponto de referência é o Perguntas frequentes sobre o Ubuntu swap

Esta FAQ faz um ponto importante que ninguém aqui menciona, e é isso (grifo meu)

% bl0ck_qu0te%

Então, swap não é apenas para hibernação! Essa atividade, trocando páginas não usadas, pode ser benéfica em alguns cenários e prejudicial em outras. Benéfico porque pode liberar memória para o sistema usar em outro lugar, mas prejudicial quando essa troca é muito agressiva, e troca as páginas que você realmente quer. Isso é especialmente verdadeiro em um sistema de desktop em que os aplicativos podem ficar inativos por longos períodos, mas o usuário ainda espera um desempenho imediato ao trazê-lo de volta à vida. O controle de quão agressivo isso é, é chamado de swappiness

O FAQ do Ubuntu Swap discute isso levemente sob O que é swappiness e como eu o altero? o valor padrão em um sistema Ubuntu é 60, enquanto o FAQ recomenda um valor de 10 para uma máquina desktop.

Então, eu diria que é geralmente muito importante não ter um sistema com absolutamente nenhum espaço de troca, como algumas pessoas estavam recomendando nesta questão, a menos que você saiba por certos cenários de uso muito específicos para o seu sistema e estão muito conscientes das consequências que isso pode ter. (Pessoalmente, não há nenhuma situação em que eu iria executar um sistema sem swap) Em um cenário de falta de memória sem swap, o sistema vai começar a matar processos (geralmente aquele que causou a OOM)

    
por brent 08.06.2012 / 16:08
23

Provavelmente não. Se você planeja hibernar seu computador (suspender para o disco), precisará de pelo menos 16 GB. Se você não hibernar, é suficiente deixar alguns gigabytes para swap (máximo de 4-8).

    
por bandi 16.06.2011 / 20:56
13

Por experiência, posso dizer isto:

Para o que eu vi usando 4GB de RAM por 3 anos, o Ubuntu teve um uso de swap de cerca de 60MB, mas apenas ao fazer algumas tarefas muito intensivas. Um par de semanas atrás eu comecei a usar um PC que tinha 16GB de RAM e o uso de swap ficou em 0% para sempre. Eu fiz várias compilações, renderização de vídeo e outras tarefas intensivas. Nunca houve uma mudança no swap. Nem mesmo uma mudança de 1KB.

Basicamente, no Ubuntu, quanto mais RAM de memória você tiver, menor a probabilidade de usar ou precisar de swap para qualquer tarefa. 16GB de RAM, ou até 8GB de RAM é mais que suficiente. Eu fiz com o 16GB PC 8 Virtualbox PCs (cada um entre 1GB a 2GB de RAM). Eu compilei e renderizei um vídeo em 720p e nem mesmo nessas condições a troca mudou.

Com isso dito, a regra do dobro de memória RAM não deve ser aplicada em sistemas baseados em Linux, ainda mais se você tiver mais memória. No entanto, você deve ter o mesmo tamanho de swap igual ao seu tamanho de ram ou se estiver planejando hibernar, já que o processo de hibernação agarra tudo e o coloca em swap, e é por isso que você precisa de um tamanho mínimo igual ao tamanho da sua ram para swap.

O outro detalhe é que alguns aplicativos (não todos) ainda irão forçar a leitura de swap. Então, ter um pouco é bom. Desativar completamente é muito ruim no caso de você chegar ao ponto de falta de memória ou OOM. Neste ponto, se você não tiver swap, não há como o kernel poder trocar / usar diferentes usos de aplicativos de memória RAM e eventualmente começar a matar os menos usados.

Se isso ajudar na tomada de decisões do desktop doméstico, depois de atualizar essa resposta em mais de quatro anos, usei um PC ram de 16 gb, 32 gb e agora um de 64 gb. Testar com apenas 128MB de swap revelou que eu não precisava de swap maior, exceto se eu quisesse hibernar. Eu usei ambientes de nuvem neles, lxc, virtualbox, vinho, o nome dele. Eu fiz vídeos com openshot, kazam, handbrake, audácia. Eu usei o gimp, o blender, o Inkscape e até mesmo o pacote completo do LibreOffice. Eu até joguei no vapor e em nenhum desses cenários a troca foi usada. É claro que eventualmente será usado se você usar a quantidade total de memória RAM de uma forma ou de outra, mas, em geral, quanto mais memória RAM você tiver, menos troca será necessária.

Apenas meus 2 centavos.

    
por Luis Alvarado 13.02.2012 / 07:50
8

Não, você não precisa de 32 GB, contanto que não use recursos como suspender para o disco.

    
por AlexTheBird 16.06.2011 / 20:58
5

Na maioria dos casos, eu diria que você não precisa de nada. Talvez, se você editar arquivos de imagem muito grandes ou algum outro aplicativo que precise de muito memória RAM, possa precisar de alguns.

Eu nunca vi nenhum usado no meu sistema, semelhante ao seu. Na verdade, ao mesmo tempo, eu tinha desativado por uma semana ou duas acidentalmente, e nunca notei nenhum problema. Mas eu ainda mantenho cerca de 5GB para minha unidade de swap, principalmente porque eu tenho mais de 1TB disponível, e não uso todo o espaço como ele é.

    
por Marty Fried 13.05.2012 / 04:00
3

Se o seu ram for superior a 1GB, geralmente é suficiente para o Ubuntu. A regra "Trocar = RAM x2" é para computadores antigos com 256 ou 128 MB de RAM.

Portanto, 1 GB de troca geralmente é suficiente para 4 GB de RAM. 8 GB seria demais.

    
por Emerson Hsieh 13.05.2012 / 04:00
3

Se você usar o hibernate, é seguro ter o máximo de swap que a sua quantidade de RAM.

Para uma regra geral sobre quanto de troca ter, leia aqui:

link

No seu caso, eu diria que 4 GB seria suficiente para corresponder à sua RAM.

    
por roadmr 13.05.2012 / 06:19
2

Se você usar a hibernação, seu swap deve ter pelo menos a mesma quantidade que o seu ram físico.

    
por gemue2010 13.05.2012 / 06:17
1

Você só precisa trocar se quiser usar o modo de hibernação para o resto, é um desperdício de espaço no seu disco rígido.

    
por Rens 16.06.2011 / 21:43
1

Eu tenho um laptop com 4GB de RAM e Ubuntu 16.04. Após a inicialização, ele consome cerca de 1 GB de RAM e, mesmo assim, o Inkscape (por exemplo) não é executado (o monitor do sistema mostra mais de 50% da RAM livre). Inkscape congelar Depois de aplicar um arquivo de troca, ele é executado como esperado, mesmo sem o uso de um único byte de swap). Então eu recomendo uma partição swap (ou swap file). Sobre o tamanho dele, você pode usar a regra david6.

    
por Danilo 24.06.2016 / 03:54
1

Do SwapFaq do Ubuntu :

Por que preciso trocar?

Programas que consomem muita memória Às vezes, um programa grande (como o LibreOffice, o Neverwinter Nights ou um editor de vídeo) faz com que todo o sistema precise de memória extra. Um número significativo de páginas usadas por esses programas grandes durante a inicialização só pode ser usado para inicialização e nunca mais usado novamente. O sistema pode trocar essas páginas e liberar a memória para outros programas ou até mesmo para o cache de disco. Nesses casos, a troca será usada para ajudar o sistema a lidar com qualquer carga extra.

Hibernação (suspend-to-disk) O recurso de hibernação (suspend-to-disk) grava o conteúdo da RAM na partição de swap antes de desligar a máquina. Portanto, sua partição de swap deve ser pelo menos tão grande quanto seu tamanho de RAM. A implementação de hibernação atualmente usada no Ubuntu, swsusp, precisa de uma partição swap ou suspensa. Não é possível usar um arquivo de troca em um sistema de arquivos ativo.

Circunstâncias imprevisíveis Eventos imprevisíveis podem e vão acontecer (um programa enlouquecendo, alguma ação precisando de muito mais espaço do que você pensava ou qualquer outra combinação imprevisível de eventos). Nesses casos, a troca pode gerar um atraso extra para descobrir o que aconteceu ou para finalizar o trabalho.

Otimizando o uso da memória Como os discos rígidos mecânicos são consideravelmente mais lentos que a RAM (SSD - Solid State Drive - o armazenamento não é tão lento quanto os discos físicos, mas ainda mais lento que a RAM) quando você precisa de um arquivo (seja um arquivo de dados como um vídeo, executáveis como Firefox ou bibliotecas), o kernel do Linux lê o arquivo na RAM e o mantém lá, para que da próxima vez que você precisar, já esteja na RAM e o acesso a dados seja muito Mais rápido. As partes da RAM que aceleram a leitura do disco são chamadas de "memória em cache". Você vai notar que eles fazem uma enorme diferença em termos de capacidade de resposta. O kernel do Linux move automaticamente a RAM reservada por programas - mas não realmente usados - para a troca, de modo que ela sirva ao melhor propósito de estender a memória cache.

Otimizando o desempenho de troca Como o espaço de troca usa um dispositivo de disco, isso pode causar problemas de desempenho em qualquer sistema que use espaço de troca significativamente porque o próprio sistema também pode estar usando o mesmo dispositivo de disco ao mesmo tempo que é necessário para operações de swap. Uma maneira de reduzir esse problema é ter espaço de troca em uma unidade física diferente para que a concorrência por esse recurso seja reduzida ou eliminada.

Quanto swap eu preciso?

Por menos de 1 GB de memória física (RAM), é altamente recomendado que o espaço de troca seja, no mínimo, igual à quantidade de RAM. Além disso, é recomendável que o espaço de troca seja o dobro do máximo de RAM, dependendo da quantidade de espaço disponível no disco rígido para o sistema, devido à diminuição dos retornos.

Para sistemas mais modernos (> 1GB), seu espaço de troca deve ser no mínimo igual ao tamanho de sua memória física (RAM) "se você usar a hibernação", caso contrário você precisará de um mínimo de round (sqrt) ) e um máximo de duas vezes a quantidade de RAM. A única desvantagem de ter mais espaço de troca do que você realmente usa é o espaço em disco que você reservará para ele.

Os "retornos decrescentes" significam que, se você precisar de mais espaço de swap do que o dobro de RAM, é melhor adicionar mais RAM, pois o acesso à unidade de disco rígido é de 10³ mais lento do que o acesso à RAM. 1 segundo, de repente leva mais de 15 minutos! E ainda mais que um minuto em um SSD (Solid State Drive) rápido ...

Cenários de exemplo

% bl0ck_qu0te%     
por Jebin Philipose 17.04.2018 / 12:11
0

Eu acho que você conseguiu o contrário. Recomendação SWAP , você precisaria ~ 16GB. Então, o SWAP deve ser metade do tamanho real da memória RAM. Mas ainda isso é muito espaço. Depende do que você precisa. Eu diria que, se você não usar o "hibernate", mantenha ~ 4GB a ~ 8GB se puder pagar pelo espaço em disco. Como você tem 16 GB, presumo que esteja usando um computador que precisa de recursos poderosos ... talvez seja útil ter um SWAP de 16 GB a 32 GB também.

Tenho 2 GB de RAM e 1 GB de SWAP. Eu faço muito bem com isso, mas essa é apenas a minha opinião. Veja os outros comentários / sugestões e veja o que eles dizem.

    
por waynerod10 17.06.2011 / 09:56
0

Não encontrei referências para citar aqui, mas se você for usar um aplicativo no qual precise trocar dados inteiros na RAM, precisará pelo menos de 'tamanho de RAM + 128 MB' ou '1,25 vezes de tamanho de RAM '(eu esqueci qual estava correto) supondo que você tem RAM mais de 2 GB. Se a RAM for de 2 GB ou menos, recomenda-se ter o dobro do tamanho da memória RAM como swap. Eu segui essa recomendação em minha organização anterior para o IBM AIX com base em um documento da IBM. Eu acredito que isso vale para a maioria dos * nix desde o uso de swap é mover dados de RAM com segurança no caso de RAM não é suficiente para lidar com os dados a serem carregados na memória. O comando 'free' pode ser usado para avaliar a quantidade de swap usada na realidade.

    
por Jamess 17.06.2011 / 14:10
0

Eu tenho um laptop Mac, que deixo ligado por meses. Embora muito melhor do que o Windows, a memória não se adapta, principalmente ao seu navegador, se você continuar. Então, eventualmente, a memória se enche. Agora, se você trocar, como outras pessoas notaram, você pode sobreviver, notar e matar algo. Mas mais ao ponto, se você tem swap, algumas páginas são trocadas e você pode continuar.

Portanto, se você planeja deixar a máquina por muito tempo, a troca é uma maneira útil de liberar memória do lixo zumbi. Concedido vai demorar mais tempo para encher 16g do que eu com 3GB, mas ainda é bom. Para este propósito, 4Gb fará.

    
por Dov 17.06.2011 / 21:09
0

Se for um laptop, mantendo pelo menos a troca igual à quantidade de RAM, para permitir totalmente a hibernação. Eu ainda manteria uma quantia igual à quantidade de RAM mesmo se fosse uma área de trabalho, mas isso é apenas eu; ele será pouco usado em um desktop.

    
por haziz 13.05.2012 / 05:36
0

Tenha isso em mente -

% bl0ck_qu0te%

Então, se você tem 4 GB de RAM você nunca deve precisar de swap a menos que hibernando
O swap necessário seria de cerca de 3 - 3,5 Gb, não mais do que isso . Portanto, use seu bom senso e não desperdice espaço em disco

    
por Ashu 13.05.2012 / 06:41
0

Se você está construindo arquivos muito grandes, por exemplo, se você está construindo sistemas de tradução automática em um laptop (sim, ok, por que você quer fazer isso? Eu posso dizer que meus professores estão me fazendo ;-) ) a resposta é um claro sim, na verdade, neste momento estou lamentando não fazer isso trocar 32GB ....

Para uso casual do Ubuntu para trabalhos de escritório e internet, não, você nunca usará até 2 GB de swap, mas na realidade não há uma resposta clara, tudo depende do que você vai fazer no seu computador. .

    
por Hakim Jonas Ghoula 18.03.2013 / 10:35
0

Muita informação e variação de opinião.

Recomendações para computadores do Ubuntu :

 amount of RAM      recommended swap    with hibernation
----------------    ----------------    ----------------
 less than 4GB        2x RAM size         3x RAM size
   up to 8GB              4GB             2x RAM size
   up to 16GB             4GB            1.5x RAM size
  16GB or more            4GB           No extra needed
    
por david6 18.04.2014 / 03:05
0

Ninguém parece ter mencionado outro motivo para ter um espaço de troca significativo, é fazer com que o sistema diminua visivelmente, em vez de deixar de executar programas, à medida que você começa a ficar sem memória. Se você tem um balanceador de carga na frente que redireciona a falha, você pode querer manter o swap pequeno (digamos 1GB). Se você quiser que os programas desaceleram primeiro, então eu consideraria 4GB + raiz quadrada do tamanho da memória, e se você quiser para realmente desacelerar antes que as coisas morram, então mantenha um tamanho mínimo de memória de 1,25 (contanto que os humanos impacientes não desistam primeiro - isso seria mais apropriado para trabalhos em segundo plano).

Eu configurei 1GB para minhas máquinas de desenvolvimento e produção como um padrão, então não importa o quanto de memória eles têm, eles têm o suficiente para compilar todos os programas que eu quero e trocar programas praticamente nunca usados. usar a memória liberada para o buffer de disco.

Em comparação, eu tenho 64GB de swap no meu laptop de 32GB, o que é um pouco exagerado, mas eu queria ter certeza de que ele continuaria trabalhando mesmo que devagar, e eu sabia que iria rodar vários memoria virtual máquinas. Um efeito inesperado é quando você tem 32 GB + de intervalo de memória, em seguida, retomar da hibernação (que recarrega 32 GB de memória) é visivelmente mais lento do que uma inicialização a frio.

    
por iheggie 19.03.2017 / 17:19
0

Não, você definitivamente não precisa de 32 GB. Como regra geral, para um sistema desktop, eu diria que seu swap deve estar em algum lugar entre 4GB e RAM física + um par GB . Portanto, para 16 GB de RAM física, talvez a troca seja de 4 GB a 18 GB.

As coisas que você precisará trocar para o espaço de troca serão aproximadamente iguais à quantidade de RAM física em uso pelos aplicativos que permanecem residentes - ou seja, serviços e aplicativos do sistema que permanecem em execução enquanto você os utiliza (em oposição a tarefas que execute uma vez depois saia). Em um sistema de desktop, digamos que você pode deixar um navegador, um processador de texto, um programa de e-mail e um editor de vídeo ou gráficos enquanto trabalha em outra coisa. Aqueles podem facilmente ocupar mais de 2 GB, talvez mais de 4 GB. Então talvez 6GB de swap seja apropriado.

Como regra geral, não faz mal ter alguns GB a mais do que você precisa também. Normalmente, o swap não será usado se você tiver muita memória RAM, mas ajuda na ocasião em que algum processo está usando uma quantidade excessiva e você começa a ficar baixo, e pode impedir os processos de eliminação do sistema.

Observação: se você quiser usar a hibernação do SO, precisará dos 16 GB mencionados, mas os computadores modernos não se beneficiam muito com a hibernação. Se você tiver um SSD rápido, a inicialização poderá ser tão rápida ou mais rápida do que a reinicialização do hibernate, e os computadores modernos usarão energia insignificante no modo de suspensão que o uso do uso de energia do modo de hibernação não é um grande fator.

    
por thomasrutter 20.03.2018 / 00:11