Aggiungere memoria swap su Ubuntu

-

09 Giugno 2022

Lo swap è uno spazio su disco utilizzato dal sistema quando la RAM è piena.

Lo swap può essere in forma di:

  1. una partizione su disco
  2. 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:


Return to wiki index