Il kernel Linux fornisce un'impostazione modificabile che controlla la frequenza con cui viene utilizzato il file di scambio, chiamato swappiness
Un'impostazione di swapiness pari a zero significa che il disco verrà evitato a meno che non sia assolutamente necessario (si esaurisce la memoria), mentre un'impostazione di swapiness su 100 significa che i programmi verranno scambiati sul disco quasi istantaneamente.
Il sistema Ubuntu ha un valore predefinito di 60, il che significa che il file di scambio verrà usato abbastanza spesso se l'utilizzo della memoria è circa la metà della mia RAM. Puoi controllare il valore di swapiness del tuo sistema eseguendo:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
Dato che ho 4 GB di RAM, quindi vorrei ridurlo a 10 o 15. Il file di scambio verrà quindi utilizzato solo quando il mio utilizzo della RAM è di circa l' 80 o il 90 percento. Per modificare il valore di scambio del sistema, aprire /etc/sysctl.conf as root
. Quindi, modifica o aggiungi questa riga al file:
vm.swappiness = 10
Riavviare per rendere effettive le modifiche
È inoltre possibile modificare il valore mentre il sistema è ancora in esecuzione
sysctl vm.swappiness=10
puoi anche cancellare lo swap eseguendo swapoff -a
e quindi swapon -a
come root invece di riavviare per ottenere lo stesso effetto.
Per calcolare la formula di scambio
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
quindi il totale è 3950/100 = 39.5 * 10 = 395
quindi ciò che significa è che quando ha lasciato il 10% 395 MB di RAM, inizia a usare la swapiness