Qual deve ser a partição swap?

10

por alguns anos, eu li que é uma boa idéia criar uma partição swap tendo o espaço duplo da minha memória RAM. isso ainda se aplica hoje? ou isso não é mais necessário?

Eu tenho um servidor com 8 GiB de RAM e eu preciso criar uma partição swap, e eu queria saber se 16 GiB era demais.

    
por cd1 03.06.2009 / 20:24

11 respostas

11

Em sistemas grandes, 8 GB de RAM física, geralmente alocamos 2 GB de swap. Estes são servidores de banco de dados carregados que executam o Oracle ou PostgreSQL. Por anos, eu nunca vi swap bater mesmo sob carga pesada. A carga pesada é de aproximadamente 100 a 150 usuários, fazendo cerca de 10.000 leituras SQL e talvez 2.500 gravações por minuto.

Também ajustamos o nível de permuta para desencorajar a troca e desativamos processos desnecessários que sabemos que não precisamos executar. (Custom Linux constrói)

Como Eddie, diz acima, 1x RAM física é uma boa regra para qualquer coisa abaixo de 4GB. Eu faço Linux personalizado para uma grande empresa Fortune 500 e estas são as coisas que normalmente fazemos, e não tivemos nenhum problema nos últimos 5 anos que eu tenho consultado para eles.

Em sistemas maiores: 64bit Linux com 32GB e 64GB de RAM, estes são nossos servidores de banco de dados Oracle, e normalmente mantemos 2GB de swap para coisas como Eddie aponta acima - processos inativos serão movidos para swap dependendo de sua permutabilidade configurações.

    
por 03.06.2009 / 20:43
5

Uma pergunta aparentemente sem tempo. O bom pessoal no SlashDot discutiu isso há um tempo atrás. Confira o que eles disseram:

  • O espaço em disco não é um problema com os HDDs modernos, 16 GB ainda é uma quantia trivial para unidades TB modernas.
  • No entanto, um espaço de troca significativo pode ser um problema em caso de gerenciamento de memória deficiente:

If I watch a 4 GB movie over a period of 2 hours, a lot of memory managers will decide that attempting to cache all of that data might be a good thing. Halfway through the movie, it will think that all those other running programs have been unused for an hour and can be safely swapped out in favor of caching more of that 4 GB file. The end result is that half your programs are swapped out after watching a movie, resulting in a sluggish system that is trashing all over the swap file.

  • No final, a decisão certa deve vir dos requisitos de memória, e não das fórmulas de ballpark:

If you have [enough RAM to run the programs you want to use on a daily basis], then there's no reason to ever use swap.

    
por 03.06.2009 / 21:06
3

Veja a resposta Quanto espaço de SWAP em um sistema de alta memória? para orientação, embora sua pergunta seja mais geral. As opiniões variam muito sobre isso, mas geralmente pessoas com 1 GiB de RAM ou mais parecem correr sem swap por completo, ou com 1xmemória como swap.

Mesmo se você não planeja usar tanta RAM que forçará a troca a ocorrer, existe algum valor em ter pelo menos uma memória como swap: ela permite que o sistema operacional troque algumas coisas que não são esperadas. para ser usado imediatamente para que possa usar essa memória para discos ou buffers de E / S, por exemplo.

    
por 03.06.2009 / 20:32
3

Se você espera que seu sistema seja capaz de hibernar e continuar com sucesso :-), é provavelmente melhor alocar mais espaço para a partição swap do que a quantidade de RAM física

    
por 03.06.2009 / 21:40
3

Meu provedor de VPS nem fornece espaço de troca para os servidores, e o meu está funcionando bem sem ele.

A maioria dos servidores que vejo diariamente no trabalho também são swap-less.

Editar

No entanto - se você estiver executando uma JVM, certifique-se de ter pelo menos tanto espaço de troca quanto alguma vez definir -Xmx por causa de um conhecido questão com a JVM.

Em resumo, quando a JVM precisar de mais memória do que está atualmente usando (mas ainda não atingiu seu Xmx ), ela:

  • alterna para o disco
  • aloca nova memória
  • é lido novamente na RAM

Isso significa que se você trocar é menor que seu Xmx , pode falhar.

Para citar o relatório de erros

The best thing to do is increase swap size on the machines encountering this error.

Eu tento jogar com segurança ao trabalhar com JVMs e configurar a troca para memória física igual.

    
por 09.09.2009 / 16:40
2

Dada a velocidade dos discos rígidos modernos, grandes trocas são apenas um convite à surra. Talvez os SSDs possam reverter essa tendência, mas com talvez 300MB / s de velocidade máxima de transferência para um disco, a troca de 2-4GB demorará um bom tempo.

Nos velhos tempos (ie: Linux 1.2, i386, SunOS 4.x), você teria talvez 5-15 MB de processos daemon em execução e em qualquer lugar de 4-32MB de RAM e então daemons que estavam apenas bloqueados esperando para I / O pode ser trocado sem sucesso de desempenho real ... E eles seria melhor desde que os programas do usuário podem ter apenas 2-3MB de RAM disponíveis. Troca fez muito sentido.

Agora, no meu ambiente, a maioria dos servidores tem cargas de trabalho pesadas com memória única e a RAM pode ser estimada com precisão ... O swap está disponível para emergências, processos de fuga e assim por diante.

A exceção é para laptops e estações de trabalho que podem funcionar. Muitos sistemas operacionais usarão a área de troca para salvar a imagem suspensa e, nesses casos, a troca deve ser maior que a memória física. No Linux com o suspend2 / tuxonice, você deve ter 2xRAM no tamanho de swap para suportar a suspensão para o disco.

    
por 03.06.2009 / 21:21
1

O ideal é que você não use a troca, e a coisa com 2x de RAM é algo remanescente dos anos anteriores.

Se você está preocupado com isso, eu faria algo como:

Max Memory Requirement - Physical Ram = Swap

Eu acho que 16GB parece muito grande, pessoalmente.

    
por 03.06.2009 / 20:32
1

Antigamente, você queria o máximo que podia, o consumo de memória em kernels modernos * nix é coisa do passado. O velho ditado foi "2x sua memória". Entre 2 GB ou a quantidade de espaço que a máquina tem no dia-a-dia chegará perto de onde você precisa estar.

    
por 03.06.2009 / 21:04
1

A troca também é usada para armazenar dumps após o kernel panic. Se você estiver interessado analisando esses dumps e não tiver especificado outro destino de dump, sua troca deve ser pelo menos tão grande quanto a sua RAM.

    
por 03.06.2009 / 21:40
1

Hoje em dia, se você estiver executando um servidor de 32 GB ou 64 GB, 4 GB de swap para o padrão será uma quantia segura. Qualquer coisa maior do que isso é um exagero com muita RAM física disponível.

    
por 18.05.2016 / 17:34
0

Não existe um algoritmo único que lhe diga quanto você precisa de swap. Na prática, você precisa colocar seu sistema sob a maior carga que você pretende suportar e descobrir quantos recursos ele realmente usa. Defina o seu arquivo de swap de acordo.

Para a RAM física, você deve colocar seu sistema sob a carga real de "cruzeiro" que espera manipular e comprar de acordo. Para sistemas de baixa latência, você não deve estar trocando nada dentro da sua carga de cruzeiro (isso não é o mesmo que não ter swap alocado ou mesmo em uso). Uma pequena quantidade de troca pode ocorrer devido a utilitários de sistema pouco utilizados , mas em geral você deve ter o mínimo de troca possível.

Claro, você pode compensar o desempenho por um preço menor.

    
por 03.06.2009 / 20:59