Por que o swappiness padrão é 60? Qual seria o efeito se eu diminuir o valor de swappiness do meu PC de mesa?

16

Eu estava lendo sobre swappiness em vários fóruns e vi alguns vídeos. Muitos afirmaram que é bom que os usuários de desktop diminuam o valor do swappiness abaixo de 60 (que é o padrão). Alguns afirmaram que 60 é bom para servidores. Exatamente por que seria melhor para mim baixá-lo e por que 60 é bom para servidores? Tentei procurar uma resposta (procurei aqui por exemplo), mas não conseguia entender. ... Por favor, use termos fáceis: D

    
por Mina Michael 12.02.2014 / 19:03

4 respostas

21

Sua premissa está errada. Não há valor de swap 'bom para servidores'.

Swapiness é a quantidade de troca que é feita, especialmente o quão agressivamente você troca. Para meus servidores, o swappiness é próximo de zero, já que tenho certeza de que eles têm memória suficiente para tudo. Não há valor "melhor para servidores". há 60, que é o padrão, e depois há "seu valor", que depende do uso e da memória disponível.

Se você tem servidores que às vezes usam LOADS de memória, você poderia tê-los acima do padrão, mas eu diria que alguns servidores (servidores de banco de dados?) podem querer mantê-los abaixo de um computador doméstico.

    
por Nanne 12.02.2014 / 19:17
7

O valor do swappiness é dimensionado de forma a confundir as pessoas. Eles vêem que tem um alcance de 0-100, então eles pensam em porcentagem, quando realmente o mínimo efetivo é em torno de 50.

60 significa aproximadamente não trocar até atingirmos cerca de 80% de uso de memória, deixando 20% para o cache e tal. 50 significa esperar até ficar sem memória. Valores mais baixos significam o mesmo, mas com crescente agressividade na tentativa de liberar memória por outros meios.

O descreve muito bem no link

    
por David 17.07.2014 / 20:16
5

A configuração de swappiness é um ajuste na forma como o Linux calcula os benefícios / desvantagens de trocar em um cenário particular. Um alto swappiness não fará com que o sistema troque quando não precisar, e um baixo swap, desde que você não desative completamente a troca, não impedirá que o seu sistema troque quando for absolutamente necessário.

O swappiness padrão de 60 ou mais é um compromisso muito bom, garantindo um bom desempenho do seu sistema, garantindo que ele não esteja se esforçando muito para alocar memória cache enquanto houver memória de programa alocada e não usada.

Lembre-se de que, se você tiver muita memória RAM para todos os seus processos, além do cache, o que geralmente deve ser o caso se você tiver muita RAM física, a troca não deve ser um problema para você de qualquer maneira. A maneira preferida de corrigir problemas de troca excessiva é diminuir o uso de RAM por processos e / ou aumentar a RAM física. Reduzir o swappiness terá um efeito negativo se o que você realmente precisa é de mais RAM.

Por favor, veja a resposta que escrevi para uma pergunta muito semelhante:

link

Trecho:

  

Por que a maioria das pessoas recomenda reduzir o swap para 10-20?

     

Porque a maioria acredita que trocar = ruim e que, se você não reduzir o swappiness, o sistema irá trocar quando realmente não precisar. Nenhum desses é realmente verdade. As pessoas associam a troca com os horários em que o sistema está se atolando - no entanto, é principalmente trocar porque o sistema está se atolando, e não o contrário. É verdade que há certos momentos em que a troca pode ter uma penalidade perceptível no desempenho, mas o sistema já considerou isso em sua decisão de trocar e decidiu que não fazê-lo teria uma penalidade maior no desempenho do sistema ou na estabilidade que pode mais tarde tornar-se perceptível. Em geral, as configurações padrão devem resultar no melhor desempenho geral e confiabilidade. Eu recomendaria deixá-lo no padrão.

     

...

     

Uma vez que você tenha usado memória suficiente para que não haja espaço suficiente para um cache de execução suave, o Linux pode realocar algumas memórias de aplicativos não utilizadas da RAM para trocar.

     

Não faz isso de acordo com um corte definido. Não é como se você alcançasse uma certa porcentagem de alocação, então o Linux começa a trocar. Tem um algoritmo bastante "fuzzy". São necessárias muitas coisas, que podem ser melhor descritas por "quanta pressão existe para alocação de memória". Se houver muita "pressão" para alocar nova memória, aumentará as chances de que alguns sejam trocados para ganhar mais espaço. Se houver menos "pressão", diminuirá essas chances.

     

Seu sistema tem uma configuração "swappiness" que ajuda a ajustar como essa "pressão" é calculada. Normalmente não é recomendado alterar isso, e eu certamente nunca recomendaria que você o alterasse. A troca é, em geral, uma coisa muito boa - qualquer penalidade de desempenho ocasional deve ser compensada por um ganho na capacidade de resposta geral do sistema e estabilidade para uma ampla gama de tarefas. Se você reduzir o swappiness, você deixará a quantidade de memória cache encolher um pouco mais do que seria de outra forma, mesmo quando realmente for útil. Portanto, você corre o risco de desacelerar seu computador em geral, porque há menos cache, enquanto a memória está sendo ocupada por aplicativos que nem estão usando. Se esta é uma troca bastante boa para qualquer problema específico que você esteja tendo com a troca é com você. Se você for além disso e realmente desabilitar a troca, você corre o risco de instabilidade do sistema no caso de o sistema ficar sem memória para processos.

     

O que está acontecendo quando o sistema está sobrecarregado e trocando muito?

     

Muitas das vezes as pessoas olham para o sistema que está sobrecarregando o disco pesadamente e usando muito espaço de swap e troca de culpa por ele. Essa é a abordagem errada a seguir. Se a troca chegar a esse extremo, isso significa que seu sistema está com memória extremamente baixa e a troca é a única coisa que impede que ele falhe ou mate processos aleatoriamente. Sem a troca, nessa situação, os processos irão falhar e morrer. A troca é um sintoma de um problema mais profundo. Em um sistema com memória suficiente para todas as suas tarefas, a troca apenas garante que a memória seja utilizada de maneira eficiente, distribuindo memória para o cache sobre processos inativos, nos quais ele verá que valerá a pena. Em um sistema onde a troca é implacavelmente debatendo o disco, não é culpa da troca.

     

Ao escolher o que deve ser trocado para o disco, o sistema tenta escolher a memória que não está sendo usada - ler ou gravar de. Tem um algoritmo bastante simples para calcular isso que escolhe bem na maioria das vezes.

     

...

     

Mas como pode a troca acelerar o meu sistema?Não troca coisas lentas?

     

O ato de transferir dados da memória RAM para a troca é uma operação lenta, mas só é tomada quando o kernel tem certeza de que o benefício geral superará isso. Por exemplo, se a memória da sua aplicação subiu a tal ponto que você quase não tem cache e sua E / S é muito ineficiente por causa disso, você pode obter muito mais velocidade do seu sistema liberando alguma memória, mesmo após o gasto inicial de trocar dados para liberá-lo.

Sinta-se à vontade para ler o post completo no link

    
por thomasrutter 24.03.2014 / 04:52
0

A agitação é completamente contraditória com todas essas respostas.

Real trabalho de swappiness é descrito no artigo: link

A ambiguidade é corroborada pela declaração de Andrew Morton: link

Vou enfiar os dedos nos ouvidos e cantar "la la la" até as pessoas dizerem me "Eu defini swappiness para zero e não fiz o que eu queria fazer".

Espero que seja útil

    
por user3624410 16.02.2018 / 16:21

Tags