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 allo spazio di scambio.
Lo spazio di scambio può assumere la forma di una partizione di scambio dedicata o di un file di scambio. In genere, quando si esegue CentOS su una macchina virtuale, non è presente una partizione di scambio, quindi l'unica opzione è creare un file di scambio.
Questo articolo illustra i passaggi per aggiungere un file di scambio sui sistemi CentOS 8.
Creazione e attivazione di un file di scambio #
Esegui i seguenti passaggi come utente root o utente con privilegi sudo per aggiungere spazio di scambio su un sistema CentOS 8.
-
Inizia creando un file che fungerà da spazio di scambio:
sudo fallocate -l 1G /swapfile
In questo esempio, stiamo creando un file di scambio con una dimensione di 1G. Se hai bisogno di più scambi, sostituisci
1G
con la dimensione desiderata.Se il
fallocate
l'utilità non è disponibile sul tuo sistema o viene visualizzato un messaggio di errore che dicefallocate failed: Operation not supported
, usa ildd
comando per creare il file di scambio:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Imposta i permessi del file in modo che solo l'utente root possa leggere e scrivere il file di scambio:
sudo chmod 600 /swapfile
-
Quindi, imposta un'area di scambio 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 scambio eseguendo il seguente comando:
sudo swapon /swapfile
-
Verifica che lo scambio sia attivo utilizzando lo
swapon
o ilfree
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
-
Rendi permanente la modifica aggiungendo una voce di scambio in
/etc/fstab
file:sudo nano /etc/fstab
Incolla la seguente riga:
/etc/fstab/swapfile swap swap defaults 0 0
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 su CentOS 8 è 30. Puoi controllare il valore di swappiness corrente digitando il seguente comando:
cat /proc/sys/vm/swappiness
30
Mentre il valore di swappiness di 30 va bene per desktop e macchine di sviluppo, per i 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 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 digitando:
sudo swapoff -v /swapfile
-
Rimuovere la voce di scambio
/swapfile swap swap defaults 0 0
dal/etc/fstab
file. -
Elimina il file di scambio effettivo con
rm
:sudo rm /swapfile