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 allo spazio di scambio.
Lo spazio di scambio può assumere la forma di una partizione di scambio dedicata o di un file di scambio. Di solito, quando si esegue una macchina virtuale Debian, non è presente una partizione di scambio, quindi l'unica opzione è creare un file di scambio.
Questo tutorial ti guiderà attraverso i passaggi per aggiungere un file di scambio su Debian 10 Buster.
Prima di iniziare #
Sebbene possibile, non è comune avere più spazi di scambio su una singola macchina. Per verificare se la tua installazione Debian ha già lo swap abilitato, esegui il seguente comando:
sudo swapon --show
Se l'output è vuoto, significa che il sistema non ha spazio di swap.
Altrimenti, se ottieni qualcosa come di seguito, hai già lo scambio abilitato sul tuo sistema Debian.
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -1
Per attivare lo scambio, l'utente che esegue i comandi deve disporre dei privilegi sudo.
Creazione di un file di scambio #
In questo esempio creeremo e attiveremo 1G
di scambio. Per creare uno scambio più grande, sostituisci 1G
con la dimensione dello spazio di scambio desiderato.
I passaggi seguenti mostrano come aggiungere spazio di scambio su Debian 10.
-
Per prima cosa crea un file che verrà utilizzato per lo scambio:
sudo fallocate -l 1G /swapfile
Se
fallocate
non è installato o viene visualizzato un messaggio di errore che dicefallocate failed: Operation not supported
puoi usare il seguente comando per creare il file di scambio: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 scambio. Emetti il comando seguente per impostare le autorizzazioni corrette:
sudo chmod 600 /swapfile
-
Usa
mkswap
strumento per configurare un'area di scambio Linux sul file:sudo mkswap /swapfile
-
Attiva il file di scambio:
sudo swapon /swapfile
Per rendere permanente la modifica, apri il
/etc/fstab
file:sudo nano /etc/fstab
e incolla la seguente riga:
/etc/fstab/swapfile swap swap defaults 0 0
-
Verifica se lo scambio è attivo utilizzando lo
swapon
ofree
comando come mostrato di seguito:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
sudo free -h
total used free shared buff/cache available Mem: 488M 158M 83M 2.3M 246M 217M Swap: 1.0G 506M 517M
Regolazione del valore di scambio #
Swappiness è una proprietà del kernel Linux che definisce la frequenza con cui il sistema utilizzerà lo spazio di scambio. Swappiness può avere un valore compreso tra 0 e 100. Un valore basso farà sì che il kernel cerchi di evitare lo scambio quando possibile, mentre un valore più alto farà sì che il kernel utilizzi lo spazio di scambio in modo più aggressivo.
Il valore di swappiness predefinito è 60. Puoi controllare il valore di swappiness corrente usando il cat
comando:
cat /proc/sys/vm/swappiness
60
Mentre il valore di swappiness di 60 va bene per la maggior parte dei sistemi Linux, per i server di produzione dovresti impostare un valore più basso.
Ad esempio, per impostare il valore di swappiness su 10, digitare:
sudo sysctl vm.swappiness=10
Per rendere questo parametro persistente tra i riavvii, aggiungi la seguente riga a /etc/sysctl.conf
file:
vm.swappiness=10
Il valore di swappiness ottimale dipende dal carico di lavoro del sistema e da come viene utilizzata la memoria. Dovresti regolare questo parametro con piccoli incrementi per trovare un valore ottimale.
Rimozione di un file di scambio #
Per disattivare e rimuovere il file di scambio, procedi nel seguente modo:
-
Disattiva lo spazio di scambio eseguendo:
sudo swapoff -v /swapfile
-
Apri il
/etc/fstab
file con il tuo editor di testo e rimuovi la voce del file di scambio/swapfile swap swap defaults 0 0
. -
Infine, elimina il file di scambio effettivo con
rm
comando:sudo rm /swapfile