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.