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 root@IP_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 nome_utente@IP_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 nome_utente@IP_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
:
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.