A configuração de troca é um ajuste na maneira como o Linux calcula os benefícios / desvantagens da troca em um cenário específico. Uma troca alta não fará com que o sistema troque quando não é necessário, e uma troca baixa, desde que você não desative a troca completamente, não impedirá que o sistema troque quando for absolutamente necessário.
A troca padrão de 60 ou mais é um compromisso muito bom, garantindo um bom desempenho do sistema, garantindo que não seja muito difícil alocar a memória cache enquanto houver memória de programa alocada não utilizada.
Lembre-se de que, se você tiver bastante RAM para todos os seus processos, além de cache, o que normalmente deve acontecer se você tiver bastante RAM física, a troca não deve ser um problema para você. A maneira preferida de corrigir problemas de muita troca é diminuir o uso de RAM pelos processos e / ou aumentar a RAM física. Reduzir a troca terá um efeito negativo se você realmente precisar de mais RAM.
Por que a maioria das pessoas recomenda reduzir o swappiness para 10-20?
Porque a maioria acredita que trocar = ruim e que, se você não reduzir a troca, o sistema será trocado quando realmente não for necessário. Nenhuma delas é realmente verdadeira. As pessoas associam a troca a momentos em que seu sistema está atolado - no entanto, é principalmente a troca porque o sistema está atolado, 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 na sua decisão de trocar e decidiu que não fazer isso teria uma penalidade geral maior no desempenho ou na estabilidade do sistema, o que pode mais tarde se torna perceptível. No geral, as configurações padrão devem resultar no melhor desempenho e confiabilidade gerais. Eu recomendo deixá-lo no padrão.
...
Depois que você tiver usado memória suficiente para que não haja espaço suficiente em um cache de bom funcionamento, o Linux poderá realocar uma memória de aplicativo não utilizada da RAM para trocar.
Isso não é feito de acordo com um ponto de corte definido. Não é como se você alcançasse uma certa porcentagem de alocação, então o Linux começa a trocar. Ele tem um algoritmo bastante "confuso". Isso leva em consideração muitas coisas, que podem ser melhor descritas por "quanta pressão existe para a alocação de memória". Se houver muita "pressão" para alocar nova memória, aumentará as chances de que algumas sejam trocadas para criar mais espaço. Se houver menos "pressão", isso diminuirá essas chances.
Seu sistema possui uma configuração de "troca" que ajuda a ajustar como essa "pressão" é calculada. Normalmente, não é recomendável alterar isso, e eu certamente nunca recomendaria que você o alterasse. A troca é geralmente uma coisa muito boa - todas as penalidades ocasionais de desempenho devem ser compensadas por um ganho na capacidade de resposta e estabilidade gerais do sistema para uma ampla gama de tarefas. Se você reduzir o swappiness, deixe a quantidade de memória cache diminuir um pouco mais do que seria de outra forma, mesmo quando for realmente útil. Portanto, você corre o risco de desacelerar o computador em geral, porque há menos cache, enquanto a memória está sendo absorvida por aplicativos que nem sequer o estão usando. Depende de você se esse é um compromisso bom o suficiente para qualquer problema específico que você esteja enfrentando na troca.
O que está acontecendo quando o sistema está atolado e trocando fortemente?
Muitas vezes, as pessoas olham para o seu sistema que está debulhando muito o disco e usando muito espaço de troca e culpa por isso. Essa é a abordagem errada a seguir. Se a troca chegar a esse extremo, isso significa que seu sistema está com pouca memória e a troca é a única coisa que impede que ele interrompa ou interrompa processos aleatoriamente. Sem troca, nessa situação, os processos travam e morrem. 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 a memória para o cache por processos inativos onde ele acha que valerá a pena. Em um sistema em que a troca é incansavelmente debulhar o disco, a culpa não é da troca.
Ao escolher o que deve ser trocado para o disco, o sistema tenta coletar memória que não está sendo realmente usada - leitura ou gravação. Ele tem um algoritmo bastante simples para calcular isso, que escolhe bem a maior parte do tempo.
...
Mas como a troca pode acelerar meu sistema? Não trocar as coisas devagar?
O ato de transferir dados da RAM para a troca é uma operação lenta, mas só é usada quando o kernel tem certeza de que o benefício geral será superior a isso. Por exemplo, se a memória do aplicativo aumentou a ponto de você não ter quase nenhum cache restante e a sua E / S ser muito ineficiente por causa disso, é possível obter muito mais velocidade do sistema liberando alguma memória, mesmo após a despesa inicial de trocar dados para liberá-los.