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 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
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.