[Performance]: Alterando a forma de trabalho com a swap no Linux

A swap, área de troca ou memória virtual como também é conhecida, é uma área no disco rígido do seu computador usada pelo sistema operacional sempre que ele precisa alocar dados que eventualmente não cabem na memória principal (memória RAM).  Em geral, quanto menos memória RAM sua máquina tiver e mais aplicações você rodar concorrentemente, mais swap é utilizada.

Um dos grandes problemas desta filosofia de trabalho, utilizada por boa parte dos sistemas operacionais modernos, é que o disco rígido (mesmo os mais rápidos do mercado) é pelo menos dezenas de vezes mais lento na troca de dados que a memória RAM. Em resumo: Quanto mais swap se utiliza, mais se compromete a performance do sistema como um todo.

Se você possui uma máquina com memória RAM sobrando, pode ser útil ajustar o seu sistema operacional para utilizar menos swap em tarefas cotidianas. No GNU/Linux, existe uma chave de configuração que diz qual é a “chance” do sistema utilizar a swap. É um valor de 0 a 100  – quanto maior, mais o sistema vai usar, quanto menor, menos. Na maioria das distribuições Linux, esta “chave” está setada dentro do arquivo sysctl.

No Ubuntu Linux, por exemplo, edite o arquivo /etc/sysctl.conf e altere a seguinte linha (se ela não existir adicione):

vm.swappiness=10

Note que o valor 10 é indicado para quem tem mais de 1GB de Ram, se você tiver menos, algo entorno de 40 pode ser melhor, teste os valores para ver com qual a performance fica melhor.

Para efetivar o valor dê o seguinte comando:

$ sudo sysctl -p

Utilize esta dica com cuidado. Procure validar o valor utilizado nesta diretiva do sistema operacional, de acordo com o seu ambiente operacional. Em geral, apenas máquinas com 2GB ou mais costumam ganhar performance com este tipo de alteração. Inerente a isso, swap é um mal necessário e não tente anular completamente o seu uso em sistemas padrões. 😉

sysctl