por alguns anos, eu li que é uma boa idéia criar uma partição de swap com o espaço duplo da minha RAM. ainda se aplica hoje? ou isso não é mais necessário?
Eu tenho um servidor com 8 GiB de RAM e preciso criar uma partição de swap e queria saber se 16 GiB eram demais.
Respostas:
Em sistemas grandes, 8 GB de RAM física, geralmente alocamos 2 GB de swap. Estes são servidores de banco de dados carregados executando o Oracle ou PostgreSQL. Durante anos, nunca vi troca atingida, mesmo sob carga pesada. A carga pesada é de aproximadamente 100 a 150 usuários, fazendo cerca de 10.000 leituras de 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 ser executados. (Compilações personalizadas do Linux)
Como Eddie, diz acima, 1x RAM física é uma boa regra para qualquer coisa com menos de 4 GB. Faço compilações personalizadas do Linux para uma empresa grande da Fortune-500 e essas são as coisas que normalmente fazemos e não tivemos nenhum problema nos últimos cinco anos que eu os consultava.
Em sistemas maiores: Linux de 64 bits com 32 GB e 64 GB de RAM, esses são nossos servidores de banco de dados Oracle e, normalmente, mantemos 2 GB de troca por coisas como Eddie aponta acima - os processos inativos serão movidos para troca, dependendo das configurações de troca.
fonte
Uma pergunta aparentemente atemporal. As pessoas boas do SlashDot discutiram isso há um tempo atrás. Confira o que eles tinham a dizer:
fonte
Veja a resposta Quanto espaço SWAP em um sistema de memória alta? para obter algumas orientações, embora sua pergunta seja mais geral. As opiniões variam muito sobre isso, mas geralmente as pessoas com 1 GiB de RAM ou mais parecem rodar sem troca totalmente ou com 1xmemória como troca.
Mesmo se você não planeja usar tanta RAM que forçará a troca, há algum valor em ter pelo menos 1xmemória como troca: permite que o sistema operacional troque algumas coisas que não se espera que sejam usadas imediatamente, para que possa usar essa memória para buffers de disco ou E / S, por exemplo.
fonte
Se você espera que seu sistema seja capaz de hibernar e reinicie com êxito :-), provavelmente é melhor alocar mais espaço para a partição de swap do que a quantidade de RAM física
fonte
Meu provedor de VPS nem sequer 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 sem troca.
Editar
No entanto - se você estiver executando uma JVM, fazer certeza que você tem pelo menos tanto espaço de troca como você vai sempre definida
-Xmx
por causa de um conhecido problema com a JVM.Em resumo, quando a JVM precisa de mais memória do que está usando atualmente (mas ainda não atingiu a sua
Xmx
), ela:Isso significa que, se você trocar for menor que o seu
Xmx
, poderá falhar.Para citar o relatório de erro
Eu tento jogar com segurança ao trabalhar com JVMs e definir swap como memória física igual.
fonte
Dada a velocidade das modernas unidades de disco rígido, grandes trocas são apenas um convite para debater. Talvez os SSDs invertam essa tendência, mas com talvez a velocidade máxima de transferência de 300 MB / s para um disco, a troca de 2 a 4 GB demorará um bom tempo.
Antigamente (por exemplo: Linux 1.2, i386, SunOS 4.x), talvez você tivesse de 5 a 15 MB de processos de daemon em execução e de 4 a 32 MB de RAM e, portanto, daemons que estavam bloqueados esperando por I / O poderia ser trocado sem nenhum impacto real no desempenho ... E seria melhor, já que os programas do usuário podem ter apenas 2-3 MB de RAM disponível. A troca fazia muito sentido.
Agora, no meu ambiente, a maioria dos servidores possui cargas de trabalho pesadas de memória única e a RAM pode ser estimada com bastante precisão ... A troca existe para emergências, processos de fuga e assim por diante.
A exceção é para laptops e estações de trabalho que podem dormir. Muitos sistemas operacionais usarão a área de troca para salvar a imagem de suspensão e, nesses casos, a troca deverá ser maior que a memória física. No Linux com suspend2 / tuxonice, você deve ter 2xRAM no tamanho de troca para suportar a suspensão em disco.
fonte
Hoje em dia, se você estiver executando um servidor de 32 GB ou 64 GB, a troca de 4 GB pelo padrão é uma quantia segura. Qualquer coisa maior que isso é um exagero com a quantidade de RAM física disponível.
fonte
Idealmente, você não utilizará a troca, e a coisa com 2x RAM é realmente algo que sobrou dos últimos anos.
Se você está preocupado com isso, eu faria algo como:
Eu acho que 16 GB parece muito grande, pessoalmente.
fonte
Antigamente, você queria o máximo que conseguia: o consumo de memória nos modernos * nix kernels é coisa do passado. O velho ditado era "2x a sua memória". Entre 2 GB ou a quantidade de espaço que a máquina tem em memória RAM hoje em dia, você chegará perto de onde você precisa estar.
fonte
A troca também é usada para armazenar despejos após o pânico do kernel. Se você estiver interessado em analisar esses dumps e não tiver especificado outro destino de dump, sua troca deve ser pelo menos tão grande quanto sua RAM.
fonte
Não existe um algoritmo único que informa quanto de troca você precisa. Na prática, você precisa colocar seu sistema na maior carga que planeja oferecer suporte e descobrir a quantidade de recursos que ele realmente usa. Defina seu arquivo de troca de acordo.
Para 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 trocar totalmente dentro de sua carga de cruzeiro (isso não é o mesmo que não ter troca alocada ou mesmo em uso). , mas em geral você deve ter o mínimo de troca possível.
Obviamente, você pode trocar o desempenho por um preço mais baixo.
fonte