Importa sobre a quantidade da área de troca no sistema Linux


12

Importa se a quantidade de uma área de troca no Linux foi definida muito pequena (digamos 1Gb) e a RAM principal é 128Gb?

Devemos sempre definir a quantidade de área de troca como duas vezes a quantidade de RAM?

ATUALIZADA:

Olá, obrigado por responder a esta pergunta. Na verdade, eu tenho essa pergunta porque encontramos alguns problemas ao usar um pequeno sistema de cluster. Os problemas estão publicados em Aqui . A figura a seguir mostra algumas informações sobre alguns dos computadores desse pequeno cluster.

em formação

A MEMTOTé a quantidade total de RAM dessa máquina, a SWAPTOquantidade total de área SW AP dessa máquina e a SWAPUSquantidade usada de área SWAP. Como mostra a figura, o uso do SWAP é realmente pequeno.

Ao tentar resolver os problemas publicados aqui , não temos certeza se a quantidade de área SWAP está definida muito pequena, o que é apenas 1Gbrelativo 128Gb, como mostra a figura. Então, eu tenho essa pergunta. Lamento não ter publicado todas as informações básicas na versão original deste post. Antes disso, também pensávamos que, se a quantidade de RAM fosse grande, poderíamos definir a quantidade de SWAP pequena. Tentamos definir o SWAP c0148como sendo 16Gb, o problema parece não existir (talvez devêssemos tirar essa conclusão depois de observar seus status por um longo tempo).

Não somos profissionais no sistema Linux e não conseguimos explicar por que isso aconteceu. É provável que este seja um sistema de cluster, e o SGE esteja gerenciando os recursos de cada máquina e precisa ter uma quantidade relativamente grande de SWAP, porque essa máquina pode ser usada por muitos trabalhos enviados por muitos usuários.

Além disso, se apenas definirmos a quantidade de SWAP muito grande, também vale a pena considerar outros problemas que isso causaria.


1
Se você tem 128 GB de RAM e começa a trocar - esse sistema provavelmente está fora de controle e está morto de qualquer maneira. Eu, pessoalmente, provavelmente executaria esse servidor sem troca. O OOMKiller deve cuidar de qualquer processo descontrolado antes que a falta de memória cause uma falha - e a falha é mais rápida de corrigir de qualquer maneira.
Ryan Gooler

1
Qual seria - o que? Alguns megas de coisas do init? Alguma memória em cache que será lançada assim que algo realmente precisar do carneiro? Se sua máquina PRECISA trocar a memória para funcionar, ela está sobrecarregada e precisa ser ampliada de qualquer maneira.
22715 Ryan Gooler

1
@ Ryan Gooler: Se você está fazendo simulações científicas, um processo que usa 128 Gb ou mais não é irracional.
jamesqf


1
@RyanGooler É verdade. Meu argumento é que o aumento da troca pode permitir que os programas usem mais memória RAM física. É apenas alguns MB, mas é melhor do que nada :)
Navin

Respostas:


19

O kernel do Linux tem uma configuração para controlar com que frequência a troca é usada, chamada swappiness, descrita em /unix/88693/why-is-swappiness-set-to-60-by-default .

Uma troca de zero significa que a troca será usada apenas se o sistema ficar sem memória. Uma troca de 100 forças obriga os programas a usarem a troca instantaneamente.

Ajuste seu sistema como você gostaria que se comportasse, mas ter 128 GB de RAM é muito improvável que seu sistema fique sem memória facilmente, portanto, ter 2/4 GB de swap pode ser suficiente. Não é aconselhável, mas possível, executar um sistema sem partição de troca.

Eu acho que a regra da área de troca com o dobro da quantidade de RAM está desatualizada e é útil apenas em sistemas com cerca de 1 GB de RAM e sempre à beira do uso total da RAM.


2
Embora definir swappiness0 seja lógico com uma grande quantidade de RAM, talvez seja melhor mantê-lo como o valor padrão de 60: http://unix.stackexchange.com/a/88820/50687 .
AL

1
Existe algum gráfico com swappiness de 0 a 100 em um eixo e outra no outro para demonstrar como ... o swappiness depende do valor?
user1306322

Olá, @jcbermu, atualizei a postagem, se for conveniente, verifique.
minerando

5

Eu acredito que a regra de ouro 2x está desatualizada. Nossas estações de trabalho têm 16 GB de RAM, normalmente usamos apenas cerca de 25% disso e dificilmente usamos mais de 50%. Portanto, para nossos propósitos, não usamos nenhuma troca.

Como você precisa decidir quanto swap criar, e é teórico que qualquer número que você escolher não seja suficiente em algum momento, por que não escolher 0? Ou - por que não instalar mais RAM?

Acredito que esta é uma decisão muito pessoal, baseada em como o seu computador será usado e quanta RAM ele possui.


Olá, @gjcamnn, obrigado por responder. Atualizei a postagem, se for conveniente, verifique.
minerando

0

A menos que você realize alguns cálculos que consomem memória, você não precisa trocar nada (mas é melhor ter uma pequena partição de troca). Mas ter swap> ram é necessário quando você usará a suspensão no disco.


Olá, @ustp, obrigado por responder. Atualizei a postagem, se for conveniente, verifique.
minerando
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.