Introduzione

Swap è uno spazio su un disco che viene utilizzato quando la quantità di memoria RAM fisica è piena. Quando un sistema Linux esaurisce la RAM, le pagine inattive vengono spostate dalla RAM nello spazio di Swap.

Lo spazio di swap può assumere la forma di una partizione di swap dedicata o di un file di swap. In genere, quando si esegue Ubuntu su una macchina virtuale, non è presente una partizione di swap e l'unica opzione è quella di creare un file di swap.

Questo tutorial spiega come aggiungere un file di swap su sistemi Ubuntu 20.04 LTS Focal Fossa.

Se desideri configurare uno spazio di Swap su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Prima di iniziare

Lo swap non dovrebbe essere visto come una sostituzione della memoria fisica. Poiché lo spazio di swap è una sezione del disco rigido, ha un tempo di accesso più lento rispetto alla memoria fisica. Se il sistema esaurisce costantemente la memoria, è necessario aggiungere più RAM.

In generale, la dimensione del file di swap dipende dalla quantità di RAM del sistema:

  • Sistemi con meno di 2 GB di RAM - 2 volte la quantità di RAM.
  • Sistemi con RAM da 2 a 8 GB - le stesse dimensioni della quantità di RAM.
  • Sistemi con più di 8 GB di RAM - almeno 4 GB di Swap.

Solo il root o l'utente con privilegi sudo possono attivare il file di swap.

Creare un file di swap

In questo esempio, creeremo il file di swap di 2 GB. Se si desidera aggiungere più swap, sostituire 2G con la dimensione dello spazio di swap necessario.

Completa i passaggi seguenti per aggiungere spazio di swap su Ubuntu 20.04 LTS.

Innanzitutto, crea un file che verrà utilizzato come swap:

sudo fallocate -l 2G /swapfile

Se l'utilità fallocate non è presente sul sistema o viene visualizzato un messaggio di errore fallocate failed: Operation not supported, utilizzare il comando seguente per creare il file di swap:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152

Impostare i permessi del file a 600 per impedire agli utenti regolari di scrivere e leggere il file:

sudo chmod 600 /swapfile

Creare un'area di swap Linux sul file:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=6c73ed46-4ea7-455f-a317-26aad5895882

Attiva il file di swap eseguendo il comando seguente:

sudo swapon /swapfile

Per rendere permanente la modifica aprire il file /etc/fstab:

sudo nano /etc/fstab

Incollare la seguente riga:

/swapfile swap swap defaults 0 0

Verificare che lo swap sia attivo utilizzando il comando swapon oppure il comando free, come mostrato di seguito:

sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2
sudo free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       241Mi        75Mi       6.0Mi       1.6Gi       1.5Gi
Swap:         2.0Gi          0B       2.0Gi

Regolare il valore di Swapiness

Swappiness è una proprietà del kernel Linux che definisce la frequenza con cui il sistema utilizzerà lo spazio di swap. Può avere un valore compreso tra 0 e 100. Un valore basso farà sì che il kernel cerchi di evitare lo swap quando possibile, mentre un valore più elevato farà sì che il kernel utilizzi lo spazio di swap in modo più aggressivo.

Su Ubuntu, il valore di swapiness predefinito è impostato su 60. È possibile verificare il valore corrente digitando il comando seguente:

cat /proc/sys/vm/swappiness
60

Mentre il valore di swappiness a 60 è corretto per la maggior parte dei sistemi Linux, per i server di produzione, potrebbe essere necessario impostare un valore inferiore.

Ad esempio, per impostare il valore di swappiness su 10, eseguire:

sudo sysctl vm.swappiness=10

Per rendere persistente questo parametro dopo un riavvio del server, aggiungere la seguente riga al file /etc/sysctl.conf:

vm.swappiness=10
/etc/sysctl.conf

Il valore di swap ottimale dipende dal carico di lavoro del sistema e dal modo in cui viene utilizzata la memoria. È necessario regolare questo parametro con piccoli incrementi per trovare un valore ottimale.

Rimuovere un file di Swap

Per disattivare ed eliminare il file di swap, attenersi alla seguente procedura:

Innanzitutto, disattiva lo spazio di swap:

sudo swapoff -v /swapfile

Quindi, rimuovere la voce del file di swap /swapfile swap swap defaults 0 0 dal file /etc/fstab.

Infine, rimuovi il file di swap reale usando il comando rm:

sudo rm /swapfile

Conclusione

Ti abbiamo mostrato come creare un file di Swap e attivare e configurare lo spazio di Swap sul tuo sistema Ubuntu 20.04 LTS Focal Fossa.