Introduzione

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

Lo spazio di swap può assumere la forma di una partizione di swap dedicata o di un file di swap. Di solito, quando si esegue una macchina virtuale Debian non è presente una partizione di swap, quindi l'unica opzione è quella di creare un file di swap.

Questo tutorial ti guiderà attraverso le fasi di aggiunta di un file di swap su Debian 10 Buster.

Prima di iniziare

Sebbene possibile, non è comune avere più spazi di swap su una singola macchina. Per verificare se l'installazione Debian è già abilitata allo swap, eseguire il comando seguente:

sudo swapon --show

Se l'output è vuoto, significa che il sistema non ha spazio di swap.

Altrimenti, se ottieni qualcosa del genere di seguito, hai già abilitato lo swap sul tuo sistema Debian.

NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition   2G   0B   -1

Per attivare lo swap, l'utente che esegue i comandi deve disporre dei privilegi di sudo.

Creare un file di swap

In questo esempio, creeremo e attiveremo lo swap di 1G. Per creare uno swap più grande, sostituire 1G con la dimensione dello spazio di swap desiderato.

I passaggi seguenti mostrano come aggiungere spazio di swap su Debian 10.

Innanzitutto creare un file che verrà utilizzato per lo swap:

sudo fallocate -l 1G /swapfile

Se fallocate non è installato o viene visualizzato un messaggio di errore che dice che fallocate failed: Operation not supported è possibile utilizzare il comando seguente per creare il file di swap:

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

Solo l'utente root dovrebbe essere in grado di leggere e scrivere nel file di swap. Immettere il comando seguente per impostare le autorizzazioni corrette:

sudo chmod 600 /swapfile

Utilizzare lo strumento mkswap per impostare un'area di swap Linux sul file:

sudo mkswap /swapfile

Attiva il file di swap:

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

Verifica se lo swap è attivo utilizzando il comando swapon o free come mostrato di seguito:

sudo swapon --show
NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 506.2M   -1
sudo free -h
              total        used        free      shared  buff/cache   available
Mem:           488M        156M         73M        2.2M        237M        215M
Swap:          1.0G        505M        504M

Regolare il valore di swapiness

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

Il valore di swapiness predefinito è 60. È possibile verificare il valore di swapiness corrente utilizzando il comando cat:

cat /proc/sys/vm/swappiness
60

Mentre il valore di swapiness di 60 è OK per la maggior parte dei sistemi Linux, per i server di produzione è necessario impostare un valore inferiore.

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

sudo sysctl vm.swappiness=10

Per rendere persistente questo parametro dopo un riavvio del server, aprire il seguente file /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Incollare il seguente parametro:

vm.swappiness=10

Se stai utilizzando nano salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER.

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 e rimuovere il file di swap, procedere come segue:

Disattiva lo spazio di swap eseguendo:

sudo swapoff -v /swapfile

Apri il file /etc/fstab con un editor di testo e rimuovi la voce del file di swap /swapfile swap swap defaults 0 0.

Infine, elimina il file di swap reale con il comando rm:

sudo rm /swapfile

Conclusione

Hai imparato come creare un file di swap e attivare e configurare lo spazio di swap sul tuo computer Debian 10.