GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare e utilizzare file di scambio su Linux

Questo tutorial discute il concetto di file di scambio in Linux, perché viene utilizzato e i suoi vantaggi rispetto alla tradizionale partizione di scambio. Imparerai come creare un file di scambio o ridimensionarlo.

Cos'è un file di scambio in Linux?

Un file di scambio consente a Linux di simulare lo spazio su disco come RAM. Quando il tuo sistema inizia a esaurire la RAM, utilizza lo spazio di swap e scambia parte del contenuto della RAM nello spazio su disco. Ciò libera la RAM per servire processi più importanti. Quando la RAM è di nuovo libera, scambia i dati dal disco. Consiglio di leggere questo articolo per saperne di più sullo scambio su Linux.

Tradizionalmente, lo spazio di swap viene utilizzato come partizione separata sul disco. Quando installi Linux, crei una partizione separata solo per lo scambio. Ma questa tendenza è cambiata negli ultimi anni.

Con il file di scambio, non hai più bisogno di una partizione separata. Crei un file sotto root e dici al tuo sistema di usarlo come spazio di scambio.

Con una partizione di swap dedicata, ridimensionare lo spazio di swap è un incubo e in molti casi un compito impossibile. Ma con i file di scambio, puoi ridimensionarli a tuo piacimento.

Le versioni recenti di Ubuntu e alcune altre distribuzioni Linux hanno iniziato a utilizzare il file di scambio per impostazione predefinita. Anche se non crei una partizione di scambio, Ubuntu crea da solo un file di scambio di circa 1 GB.

Vediamo qualcosa in più sui file di scambio.

Controlla lo spazio di scambio in Linux

Prima di iniziare ad aggiungere spazio di scambio, sarebbe una buona idea controllare se lo spazio di scambio è già disponibile nel tuo sistema.

Puoi verificarlo con il comando gratuito in Linux. Nel mio caso, il mio Dell XPS ha 14 GB di swap.

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           14G          0B         14G

Il comando free ti dà la dimensione dello spazio di swap ma non ti dice se si tratta di una vera partizione di swap o di un file di swap. Il comando swapon è migliore in questo senso.

swapon --show
NAME           TYPE       SIZE USED PRIO
/dev/nvme0n1p4 partition 14.9G   0B   -2

Come puoi vedere, ho 14,9 GB di spazio di swap ed è su una partizione separata. Se fosse stato un file di scambio, il tipo sarebbe stato file invece di partizione.

swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

Se non hai uno spazio di scambio sul tuo sistema, dovrebbe mostrare qualcosa del genere:

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           0B          0B         0B

Il comando swapon non mostrerà alcun output.

Crea file di scambio su Linux

Se il tuo sistema non ha spazio di scambio o se pensi che lo spazio di scambio non sia abbastanza adeguato, puoi creare un file di scambio su Linux. Puoi anche creare più file di scambio.

Vediamo come creare file di scambio su Linux. Sto usando Ubuntu 18.04 in questo tutorial ma dovrebbe funzionare anche su altre distribuzioni Linux.

Fase 1:crea un nuovo file di scambio

Per prima cosa, crea un file con la dimensione dello spazio di scambio che desideri. Diciamo che voglio aggiungere 1 GB di spazio di swap al mio sistema. Usa il comando fallocate per creare un file di dimensioni 1 GB.

sudo fallocate -l 1G /swapfile

Si consiglia di consentire solo a root di leggere e scrivere nel file di scambio. Vedrai anche avvisi come "autorizzazioni non sicure 0644, 0600 suggerite" quando proverai a utilizzare questo file per l'area di scambio.

sudo chmod 600 /swapfile

Tieni presente che il nome del file di scambio potrebbe essere qualsiasi cosa. Se hai bisogno di più spazi di scambio, puoi assegnargli un nome appropriato come swap_file_1, swap_file_2 ecc. È solo un file con una dimensione predefinita.

Fase 2:contrassegna il nuovo file come spazio di scambio

È necessario dire al sistema Linux che questo file verrà utilizzato come spazio di scambio. Puoi farlo con lo strumento mkswap.

sudo mkswap /swapfile

Dovresti vedere un output come questo:

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a

Fase 3:abilita il file di scambio

Ora il tuo sistema sa che il file swapfile può essere usato come spazio di swap. Ma non è ancora finito. È necessario abilitare il file di scambio in modo che il sistema possa iniziare a utilizzare questo file come scambio.

sudo swapon /swapfile

Ora se controlli lo spazio di scambio, dovresti vedere che il tuo sistema Linux lo riconosce e lo usa come area di scambio:

swapon --show
NAME       TYPE   SIZE USED PRIO
/swapfile  file 1024M   0B   -2

Fase 4:rendi permanenti le modifiche

Qualunque cosa tu abbia fatto finora è temporanea. Riavvia il sistema e tutte le modifiche scompariranno.

Puoi rendere permanenti le modifiche aggiungendo il file di scambio appena creato al file /etc/fstab.

È sempre una buona idea eseguire un backup prima di apportare modifiche al file /etc/fstab.

sudo cp /etc/fstab /etc/fstab.back

Ora puoi aggiungere la seguente riga alla fine del file /etc/fstab:

/swapfile none swap sw 0 0

Puoi farlo manualmente usando un editor di testo a riga di comando o semplicemente usando il seguente comando:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Ora hai tutto a posto. Il tuo file di scambio verrà utilizzato anche dopo aver riavviato il tuo sistema Linux.

Regola lo scambio

I parametri swappiness determinano la frequenza con cui deve essere utilizzato lo spazio di scambio. Il valore di swappiness è compreso tra 0 e 100. Un valore più alto significa che lo spazio di swap verrà utilizzato più frequentemente.

Lo swappiness predefinito nel desktop di Ubuntu è 60 mentre nel server è 1. Puoi controllare lo swappiness con il seguente comando:

cat /proc/sys/vm/swappiness

Perché i server dovrebbero utilizzare un basso swappiness? Poiché lo scambio è più lento della RAM e per prestazioni migliori, la RAM dovrebbe essere utilizzata il più possibile. Sui server, il fattore di prestazione è cruciale e quindi lo swappinness è il più basso possibile.

Puoi cambiare lo swappiness al volo usando il seguente comando systemd:

sudo sysctl vm.swappiness=25

Questo cambiamento è solo temporaneo però. Se vuoi renderlo permanente, puoi modificare il file /etc/sysctl.conf e aggiungere il valore swappiness alla fine del file:

vm.swappiness=25

Ridimensionamento dello spazio di swap su Linux

Ci sono un paio di modi per ridimensionare lo spazio di swap su Linux. Ma prima di vederlo, dovresti imparare alcune cose al riguardo.

Quando chiedi al tuo sistema di smettere di usare un file di scambio per l'area di scambio, trasferisce tutti i dati (pagine per essere precisi) alla RAM. Quindi dovresti avere abbastanza RAM libera prima di effettuare lo scambio.

Questo è il motivo per cui è buona norma creare e abilitare un altro file di scambio temporaneo. In questo modo, quando si sostituisce l'area di scambio originale, il sistema utilizzerà il file di scambio temporaneo. Ora puoi ridimensionare lo spazio di scambio originale. Puoi rimuovere manualmente il file di scambio temporaneo o lasciarlo così com'è e verrà automaticamente eliminato al prossimo avvio.

Se hai abbastanza RAM libera o se hai creato uno spazio di swap temporaneo, sostituisci il tuo file originale.

sudo swapoff /swapfile

Ora puoi usare il comando fallocate per cambiare la dimensione del file. Diciamo che lo modifichi a 2 GB di dimensione:

sudo fallocate -l 2G /swapfile

Ora contrassegna nuovamente il file come spazio di scambio:

sudo mkswap /swapfile

E riattiva lo scambio:

sudo swapon /swapfile

Puoi anche scegliere di avere più file di scambio contemporaneamente.

Rimozione del file di scambio in Linux

Potresti avere le tue ragioni per non usare il file di scambio su Linux. Se vuoi rimuoverlo, il processo è simile a quello che hai appena visto ridimensionando lo scambio.

Innanzitutto, assicurati di avere abbastanza RAM libera. Ora sostituisci il file:

sudo swapoff /swapfile

Il passaggio successivo consiste nel rimuovere la rispettiva voce dal file /etc/fstab.

E alla fine, puoi rimuovere il file per liberare spazio:

sudo rm /swapfile

Scambia?

Penso che ora tu abbia una buona comprensione del concetto di file di scambio in Linux. Ora puoi facilmente creare file di scambio o ridimensionarli secondo le tue necessità.

Se hai qualcosa da aggiungere su questo argomento o se hai dei dubbi, lascia un commento qui sotto.



Linux
  1. Come creare un alias e utilizzare il comando alias in Linux

  2. Come installare e utilizzare Flatpak in Linux

  3. Come creare un file di scambio in Linux

  4. Crea un file di scambio Linux

  5. UNIX / Linux:come utilizzare Sticky Bit su directory e file

File host Linux:come modificarlo e utilizzarlo?

Come installare e utilizzare PuTTY su Linux

Come installare e utilizzare phpMyAdmin in Linux

Come installare e utilizzare il comando fd in Linux

Come disabilitare lo scambio in Linux

Come usare gzip in Linux?