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 CentOS su una macchina virtuale, non è presente una partizione di swap, quindi l'unica opzione è quella di creare un file swap.

Questo articolo illustra i passaggi per l'aggiunta di un file swap sui sistemi CentOS 8.

Se volete procedere su un server in remoto continuate a leggere, altrimenti saltate il primo paragrafo "Connessione al Server" e leggere 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 [email protected]_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 [email protected]_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 [email protected]_DEL_SERVER -p PORTA

Creazione e attivazione di un file swap

Eseguire i seguenti passaggi come utente root o utente con privilegi sudo per aggiungere spazio swap su un sistema CentOS 8.

Inizia creando un file che fungerà da spazio di swap:

sudo fallocate -l 1G /swapfile

In questo esempio, stiamo creando un file swap con una dimensione di 1G. Se hai bisogno di più swap, sostituisci 1G con la dimensione desiderata.

Se l'utilità fallocate non è disponibile sul tuo sistema o ricevi un messaggio di errore come questo fallocate failed: Operation not supported, usa il comando dd per creare il file di swap:

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

Impostare le autorizzazioni del file in modo che solo l'utente root possa leggere e scrivere il file swap:

sudo chmod 600 /swapfile

Successivamente, imposta un'area di swap Linux sul file:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045

Attiva lo swap eseguendo il seguente comando:

sudo swapon /swapfile

Verificare che lo swap sia attivo utilizzando il comando swapon o il comando free, 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

Rendi permanente la modifica aggiungendo una voce di swap nel file /etc/fstab:

sudo nano /etc/fstab

Incolla la seguente riga:

/swapfile swap swap defaults 0 0

Regolazione del 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à in modo che il kernel cerchi di evitare lo swap ogni volta che è possibile, mentre un valore più elevato farà sì che il kernel usi lo spazio di swap in modo più aggressivo.

Il valore di swapiness predefinito su CentOS 8 è 30. È possibile verificare il valore di swapiness corrente digitando il comando seguente:

cat /proc/sys/vm/swappiness
30

Mentre il valore di swapiness di 30 è corretto per desktop e macchine di sviluppo, per server di produzione, potrebbe essere 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, aprire il seguente file:

sudo vi /etc/sysctl.conf

Aggiungere la seguente riga:

vm.swappiness=10

Salvare e chiudere il file.

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.

Rimozione di un file di swap

Per disattivare e rimuovere il file di swap, attenersi alla seguente procedura, disattiva lo spazio di swap digitando:

sudo swapoff -v /swapfile

Aprire il file /etc/fstab:

sudo vi /etc/fstab

Rimuovere la seguente voce di swap /swapfile swap swap defaults 0 0:

/swapfile swap swap defaults 0 0

Elimina il file di swap reale con 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 CentOS 8.