Lo swap è uno spazio su disco utilizzato dal sistema quando la RAM è piena.
Lo swap può essere in forma di:
- una partizione su disco
- un semplice file
Tipicamente, quando il sistema è su una macchina virtuale, non è presente una partizione dedicata allo swap, quindi è utilizzata l'opzione 2.
Controllare che lo swap sia abilitato
Con questo comando si può vedere lo vedere lo swap disponibile:
sudo swapon --show
Se l'output del comando è vuoto significa che lo swap non è abilitato.
Aggiungere spazio swap al sistema
Nel seguente esempio aggiungerò 1GB di swap:
# Creo il file di swap
sudo fallocate -l 1G /swapfile
# Solo root può 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 è una proprietà del kernel, si tratta di un valore tra 0 e 100 che indica quanto utilizzare la memoria swap.
Più il valore è basso, più il sistema operativo cercherà di evitare l'uso dello swap.
Il valore di default è 60, è scritto nel seguente file:
cat /proc/sys/vm/swappiness
Il valore di default è ok in generale, in un ambiente di produzione però 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: