Lo swap e' uno spazio su disco utilizzato dal sistema quando la RAM e' piena.
Lo swap puo' essere in forma di:
- una partizione su disco;
- un semplice file.
Tipicamente, quando il sistema e' su una macchina virtuale, non e' presente una partizione dedicata allo swap, quindi viene utilizzata l'opzione 2.
Controllare che lo swap sia abilitato
Con questo comando si puo' vedere lo swap disponibile:
sudo swapon --show
Se l'output del comando e' vuoto significa che lo swap non e' abilitato.
Aggiungere spazio swap al sistema
Nel seguente esempio aggiungo 1GB di swap:
# Creo il file di swap
sudo fallocate -l 1G /swapfile
# Solo root puo' leggere/scrivere il file di swap
sudo chmod 600 /swapfile
# Setup dell'area di swap sul file
sudo mkswap /swapfile
# Attivo il file di swap
sudo swapon /swapfile
Per rendere le modifiche permanenti, modifico il file /etc/fstab:
# Apro il file
sudo nano /etc/fstab
# Aggiungo questa riga al file
/swapfile swap swap defaults 0 0
Posso verificare la memoria disponibile di sistema con il comando:
sudo free -h
Aggiustare lo swappiness
Lo swappiness e' una proprieta' del kernel, si tratta di un valore tra 0 e 100 che indica quanto utilizzare la memoria swap.
Piu' il valore e' basso, piu' il sistema operativo cerchera' di evitare l'uso dello swap.
Il valore di default e' 60, ed e' scritto nel seguente file:
cat /proc/sys/vm/swappiness
Il valore di default e' ok in generale, in un ambiente di produzione pero' potresti volerlo abbassare.
Se volessi, per esempio, modificarlo a 10 usa il seguente comando:
sudo sysctl vm.swappiness=10
Se volessi anche rendere la modifica permanente, aggiungi la seguente riga al file /etc/sysctl.conf:
vm.swappiness=10
Rimuovere un file di swap
Disattiva il file di swap:
sudo swapoff -v /swapfile
Rimuovi la riga aggiunta in precedenza al file /etc/fstab:
/swapfile swap swap defaults 0 0
Rimuovi definitivamente il file:
sudo rm /swapfile
Riferimenti utilizzati per scrivere questa guida: