Swap è uno spazio su un disco che viene utilizzato quando la quantità di memoria RAM fisica è piena (come il file di paging presente nei sistemi Windows).
Quando un sistema Linux esaurisce la RAM, le pagine inattive vengono spostate dalla RAM nella memoria SWAP. Lo spazio di SWAP può assumere la forma di una partizione di swap dedicata o di un file di swap. Nella maggior parte dei casi quando si esegue CentOS su una macchina virtuale non è presente una partizione di swap, quindi l’unica opzione è quella di creare un file di SWAP.
Prima di procedere è necessario verificare se l’installazione CentOS è già abilitata digitando:
sudo swapon --show
Se l’output è vuoto, significa che nel sistema non è abilitato lo swap. Altrimenti se viene visualizzato output sottostante, è già stato abilitato.
sudo swapon --show NAME TYPE SIZE USED PRIO /swapfile file 1024M 20,8M -2
Anche se sarebbe possibile, non è consigliabile avere più spazi di swap su una singola macchina.
L’utente deve disporre dei privilegi di root per poter attivare lo swap. In questa guida, aggiungeremo uno swap di 1GB, se desideri aggiungere uno swap con una dimensione differente è necessario intervenire su questo parametro.
Seguire i passaggi seguenti per aggiungere spazio di swap:
Innanzitutto, crea un file che verrà utilizzato come spazio di swap
sudo fallocate -l 1G /swapfile
Se l’fallocate
non è disponibile 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=1048576
Assicurarsi che solo l’utente root possa leggere e scrivere il file di swap:
sudo chmod 600 /swapfile
Successivamente, impostare un’area per il file di swap:
sudo mkswap /swapfile
Eseguire il comando seguente per attivare lo swap:
sudo swapon /swapfile
Rendiamo permanente la modifica aprendo il file /etc/fstab
:
sudo nano /etc/fstab
e incollando la seguente riga alla fine:
/swapfile swap swap defaults 0 0
Per verificare che lo swap sia attivo, utilizzare il comando swappon
per verificare l’esistenza dello swap e il comando free
per verificare i dettagli della memoria disponibile e utilizzata
sudo swapon --show NAME TYPE SIZE USED PRIO /swapfile file 1024M 20,5M -2
sudo free -h total used free shared buff/cache available Mem: 1,8G 687M 865M 67M 284M 910M Swap: 1,0G 20M 1,0G
Regolazione del valore di swapiness
Lo swappiness è una proprietà del kernel di 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 provi a evitare lo swapping il più 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 su CentOS 7 è 60. È possibile verificare il valore di swapiness corrente digitando il comando seguente:
cat /proc/sys/vm/swappiness 60
Svuotamento swap
Nel caso avete bisogno di svuotare la cache Swap, è possibile farlo con il comando sottostante.
Bisogna verificare che la nostra RAM sia sufficiente in quanto la memoria presente nello spazio swap sarà trasferita nella ram.
swapoff -a
Una volta completato lo svuotamento, utilizzare questo comando per riabilitare la cache.
swapon -a