O kernel do Linux fornece uma configuração ajustável que controla a frequência com que o arquivo de troca é usado, chamado swappiness
Uma configuração de troca de zero significa que o disco será evitado a menos que seja absolutamente necessário (você fica sem memória), enquanto uma configuração de troca de 100 significa que os programas serão trocados para o disco quase que instantaneamente.
O sistema Ubuntu vem com um padrão de 60, o que significa que o arquivo de troca será usado com bastante frequência se o uso de memória for cerca de metade da minha RAM. Você pode verificar o valor de swappiness do seu próprio sistema executando:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
Como tenho 4 GB de RAM, gostaria de diminuir para 10 ou 15. O arquivo de troca será usado apenas quando meu uso de RAM for de 80 ou 90 %. Para alterar o valor de troca do sistema, abra /etc/sysctl.conf as root
. Em seguida, altere ou adicione esta linha ao arquivo:
vm.swappiness = 10
Reinicialize para que a alteração entre em vigor
Você também pode alterar o valor enquanto o sistema ainda está em execução
sysctl vm.swappiness=10
você também pode limpar sua troca executando swapoff -a
e, em seguida, swapon -a
como root em vez de reiniciar para obter o mesmo efeito.
Para calcular sua fórmula de swap
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
então o total é 3950/100 = 39,5 * 10 = 395
Então, o que isso significa é que, quando restam 10% 395 MB de RAM, ele começa a usar swapiness