Quanto espaço de SWAP em um sistema de 2-4GB?

52

Como devo decidir que tamanho fazer minha troca em uma nova máquina Linux (Debian) com 2-4 GB de RAM? Eu realmente preciso de espaço de troca?

    
por C. Ross 07.05.2009 / 15:15

12 respostas

54

Existem muitas maneiras de descobrir quanto swap usa em uma máquina. Sugestões comuns usam fórmulas baseadas em RAM, como 2 x RAM, 1,5 x RAM, 1 x RAM, 0,75 x RAM e 0,5 x RAM. Muitas vezes as fórmulas variam dependendo da quantidade de RAM (então uma caixa com 1GB de RAM pode usar 2 x RAM swap (2GB), enquanto uma caixa com 16GB de memória RAM pode usar .5 x swap de memória RAM (8GB). p>

Outra coisa a considerar é o que a caixa será usada. Se você vai ter um grande número de processos em execução simultânea rodando na caixa, mas um número significativo deles estará inativo por períodos de tempo, então adicionar swap extra faz sentido. Se você estiver executando um pequeno número de processos críticos, adicionar um swap extra faz sentido (isso pode parecer contra-intuitivo, mas explicarei em um minuto). Se você está executando uma caixa como desktop, então adicionar swap extra faz sentido.

Quanto a saber se você deve incluir swap, sim, você deveria. Você deve sempre incluir espaço de troca a menos que você realmente saiba o que está fazendo, e você realmente tenha uma boa razão para isso.

Veja, a maneira como o kernel do Linux funciona, o swap não é usado apenas quando você esgotou toda a memória física. O kernel do Linux tomará aplicativos que não estão ativos (dormindo) e após um período de tempo, move o aplicativo para trocar da memória real. O resultado é que quando você precisar desse aplicativo, haverá um atraso momentâneo (geralmente apenas um segundo ou dois) enquanto a memória do aplicativo é lida de volta para a memória RAM. E isso geralmente é uma coisa boa.

Isso permite que você coloque aplicativos inativos para "dormir", dando aos seus aplicativos ativos acesso a RAM adicional. Além disso, o Linux usará qualquer RAM disponível (não alocada) em uma máquina como cache de disco, tornando a atividade do disco mais lenta (mais lenta) e mais responsiva. A troca de processos inativos oferece mais cache de disco e torna sua máquina mais rápida no geral.

Por último, vamos encarar, o espaço em disco é barato. Muito barato. Não há realmente nenhuma boa razão para não roubar um pedaço (relativamente) pequeno de espaço para swap. Se eu estivesse rodando com 2GB - 4GB de RAM em uma máquina, provavelmente configuraria meu espaço de troca para ser pelo menos igual à RAM. Se fosse menos de 2GB de RAM, então eu ainda iria com pelo menos 2GB de swap.

UPDATE: Como um excelente comentário mencionado (e eu esqueci de incluir), se você estiver executando um laptop ou um desktop que você pode querer colocar no modo 'hibernar' (Suspender para o disco), então você sempre quer pelo menos tanta troca quanto você tem memória. O espaço de troca será usado para armazenar o conteúdo da RAM no computador enquanto ele 'dorme'.

    
por 07.05.2009 / 16:07
17

Red Hat recomenda a seguinte fórmula para servidores com muitos ram:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

Se o seu sistema tiver 1 GB de RAM, sua troca seria de 2 GB, para 16 GB seria de 18 GB.

    
por 09.07.2009 / 13:13
12

Resposta tardia, e acho que isso foi muito bem abordado na resposta selecionada, mas há algumas informações boas e de fácil digestão na resposta fornecida por @ssapkota aqui (copiar / colado abaixo).

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

Um trecho do mesmo link:

In years past, the recommended amount of swap space increased linearly with the amount of RAM in the system. But because the amount of memory in modern systems has increased into the hundreds of gigabytes, it is now recognized that the amount of swap space that a system needs is a function of the memory workload running on that system. However, given that swap space is usually designated at install time, and that it can be difficult to determine beforehand the memory workload of a system, we recommend determining system swap using the following table.

Tabela atual (em dezembro de 2012):

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            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

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 29.03.2013 / 15:38
8

Depende bastante do que você está fazendo com isso. Com o carga de trabalho adequada, você não precisa de nenhum espaço de troca, seja você tem 16MB ou 16384MB de RAM; na verdade, a maioria dos dispositivos Linux embarcados é executada sem nenhum (o que eles trocariam?)

Considerando os preços de RAM, você provavelmente não usará swap para ativos computação. Então, o que resta?

  1. Em desktops, o espaço de troca é usado para suspender para o disco. Este espaço de troca precisa estar em torno de 1 × RAM, dependendo de quão bem o conteúdo da memória comprimir.
  2. Permitir que tarefas inativas sejam removidas da RAM para ter mais espaço para cache de disco
  3. O mesmo, mas para permitir que os processos ativos o usem para heap / pilha

(2) e (3) dependem muito da carga de trabalho. Nos meus desktops, posso usar facilmente 4GB + on (2), saindo de vims, xterms, etc. rodando em outro desktops.

Na maioria dos servidores que eu executo, quase não há nada perdido e 1-2GB de swap (independentemente da quantidade de RAM) parece OK.

    
por 07.05.2009 / 16:01
4

Bem, isso depende de quais serviços e aplicativos você planeja executar. Você pode observar seu uso de memória com free -m e ajustar sua partição de swap de acordo com o tempo.

Aqui está uma discussão interessante sobre o assunto. Pessoalmente (e depois de ler essa discussão) eu ainda deixaria cerca de 1 GB para swap.

    
por 07.05.2009 / 15:30
2

Não consigo falar diretamente com o Debian, mas sei que quando você se eleva acima de 2 GB de RAM, a equação original de 2xRAM muda, geralmente para 1xRAM. Acho que quando você atinge 16 GB de RAM, a sugestão diminui novamente para .75xRAM.

É claro que achei isso verdadeiro para o Solaris e, na verdade, é a métrica usada para instalações do Oracle, de modo que o YMMV depende dos aplicativos que você executará lá.

    
por 07.05.2009 / 15:24
2

Eu sempre faço tanta troca (pelo menos) quanto a RAM. Apenas no caso eu quero hibernar a máquina algum dia. Pode trabalhar com menos, mas também não.

O espaço em HDD é barato hoje em dia, portanto, não hesito em oferecer espaço para troca.

    
por 07.05.2009 / 16:12
2

O espaço de troca pode servir como "preenchimento" quando você fica sem memória imediatamente.

Quando um processo consome toda a memória RAM disponível e, em seguida, parte dela é executada muito lentamente, mas normalmente você poderá recuperar. Também será mais fácil ver qual processo está causando o problema.

    
por 23.05.2009 / 08:53
1
Ao longo dos anos tenho seguido a regra de que para máquinas Windows você tem tanto swap quanto você tem RAM ... Na Novell nós ajustaríamos swap mais alto se tivéssemos mais impressoras ... Para linux a regra e prática pra mim foi 1GB swap para cada 2GB de RAM que você tem. E você coloca na frente do disco para acessá-lo mais rapidamente.

  • Se for um gateway de correio / spam, eu uso o dobro da troca para a RAM
  • Se for um servidor *, não uso swap em todos
  • se for um servidor LAMP, a 1/2 regra está em vigor.

  • A milhagem irá variar dependendo da aplicação e da utilização da GUI.

por 07.05.2009 / 15:46
0

Eu crio 1GB de swap e compro mais RAM no segundo que está sendo usado. Você realmente não precisa de swap em computadores modernos, a RAM é tão barata.

    
por 07.05.2009 / 15:24
0

Para que você está usando o sistema? Pessoalmente eu não uso nenhuma troca. Se alguma coisa usar um token de 512MB ou algo assim, as coisas podem ser colocadas no disco se forem residentes mas inativas por longos períodos.

    
por 07.05.2009 / 15:27
0

Eu apenas uso uma pequena troca de token (normalmente 256 MB, mas eu até fiz 64 MB) porque configurar um sistema com troca zero requer configuração especial.

O espaço em disco é barato, mas slooooooooow. Assim que o sistema inicia a troca, o desempenho é zero. E a RAM não é mais tão cara.

Confie em mim, compre um processador um pouco mais lento e compre mais RAM. 2.8 GHz em vez de 3.0 GHz você economizará dinheiro suficiente para comprar outros 2 GB de RAM, pelo menos.

    
por 17.11.2009 / 20:38