Come cambiare la dimensione dello scambio in Ubuntu

Come cambiare la dimensione dello scambio in Ubuntu

In questa guida, dimostreremo su come cambiare la dimensione dello scambio in Ubuntu 22.04.

Prerequisiti:

Per eseguire i passaggi in questa guida, sono necessari i seguenti componenti:

  • Un sistema ubuntu adeguatamente configurato. Per i test, è possibile installare Ubuntu su una macchina virtuale utilizzando VirtualBox.
  • Accesso a un utente non root che può eseguire i comandi sudo.

Swap File in Linux

La RAM della macchina è divisa in blocchi dal kernel Linux chiamato "Pagine". Ogni volta che una pagina viene copiata in uno spazio preconfigurato sui dispositivi di archiviazione secondaria (disco rigido o SSD nella maggior parte dei casi), si chiama "scambiare". Lo spazio dedicato preconfigurato è chiamato "Spazio di scambio".

La quantità totale di memoria fisica (RAM) e lo spazio di scambio è chiamata memoria "virtuale".

È lo scambio necessario?

Ci sono un paio di motivi per cui è necessario lo scambio:

  • Quando c'è una richiesta di più memoria di ciò che è fisicamente disponibile, lo scambio di pagine meno importanti liberano più memoria per il processo che richiede più memoria.
  • Gran parte delle pagine utilizzate durante l'avvio di un programma potrebbe vedere pochissimo utilizzo. Scambiare quelle pagine può liberare più memoria per altre app.
  • Se non viene assegnato alcun spazio di swap, se lo spazio della RAM è completamente occupato, può causare l'arresto del sistema, in particolare i sistemi con bassa spazio della RAM.

Tuttavia, lo scambio viene fornito con il proprio set di lati negativi:

  • Rispetto alla RAM, i depositi secondari (dischi rigidi, SSD e simili) sono estremamente lenti. Per metterlo in prospettiva, le velocità di accesso alla RAM sono misurate in nanosecondi mentre le velocità di accesso al disco sono misurate in millisecondi.
  • A causa della differenza nelle velocità di lettura/scrittura, lo scambio è un processo molto lento. Quando stanno accadendo molti scambiati, alla fine rallenta il sistema.

Tipi di spazi di swap

Ti imbatterai in due tipi di spazi di swap in Linux:

  • Una partizione di swap dedicata: nessun altro file può essere archiviato lì.
  • Swap File: questi file possono essere ovunque all'interno del filesystem.

A seconda dello spazio di RAM disponibile, le dimensioni dello spazio di swap possono variare. Qui ci sono un paio di esempi:

Swap File in Ubuntu

Ubuntu generalmente utilizza una partizione di scambio dedicata per lo scambio. Spesso, questa partizione viene creata durante l'installazione. Tuttavia, possiamo creare e modificare i file di swap a volontà.

Elencare gli spazi di swap

Il seguente comando mostra tutti gli spazi di swap attualmente configurati:

$ swapon

L'elenco contiene tutti gli spazi di swap, sia delle partizioni che dei file di swap.

Creazione di file di swap

Un vantaggio chiave dei file di swap sulla partizione SWAP è che la dimensione del file può essere facilmente modificata, cambiando così la quantità di spazio di swap senza toccare le partizioni del disco. In questa sezione, creiamo un nuovo file di swap e lo aggiungiamo al pool di swap corrente.

Innanzitutto, crea un file vuoto utilizzando il seguente comando:

$ sudo dd if =/dev/zero di =/new_swap bs = 1m count = 2048

Qui:

  • La dimensione del file viene calcolata come 1m x 2048 = 2g.
  • Per creare un file con una dimensione diversa, modificare il valore dell'argomento di conteggio di conseguenza.
  • /Dev /zero è uno speciale dispositivo a blocchi nel sistema Linux che emette byte zero ogni volta che viene letto.
  • Mentre possiamo usare altri strumenti come Fallocate per creare il file, in alcune situazioni, può portare a problemi. Ha discusso più approfondito in questo post di Askubuntu.

Successivamente, dobbiamo impostare le autorizzazioni del file corrette utilizzando il comando seguente:

$ sudo chmod 600 /new_swap

Ora, dobbiamo formattare il file come scambio usando il seguente comando:

$ sudo mkswap /new_swap

Infine, possiamo aggiungere il file al pool di swap.

$ sudo swapon /new_swap

Se l'azione ha esito positivo, il nuovo file di swap dovrebbe apparire nell'elenco degli spazi di swap.

$ swapon

Si noti che questa azione è solo temporanea. Al riavvio, il file di swap non verrà più utilizzato. Per renderlo una modifica permanente, dobbiamo aggiornare la tabella /etc /fstab con la seguente voce:

$ /new_swap swap swap predefiniti 0 0

Controllare lo spazio di scambio gratuito

Il seguente comando stampa sia la memoria che l'utilizzo di scambio:

$ sudo gratuito -h

Eliminazione del file di swap

Per eliminare un file di swap, dobbiamo prima assicurarci che non sia in uso. Il seguente comando disattiva un file di swap:

$ sudo swapoff -v /

Controlla l'elenco degli spazi di swap attivi per confermare la modifica.

$ swapon

Se il file di swap viene dichiarato in /etc/fstab, Devi anche rimuovere la voce. Ora, il file di swap è sicuro da eliminare. Eliminalo usando il seguente comando:

$ sudo rm /

Modifica della dimensione dello scambio

A seconda del tipo di spazio di swap (partizione o file), il processo di modifica della dimensione dello swap può variare.

Modifica delle dimensioni della partizione di swap

Una partizione può essere estesa solo se ci sono spazi non allocati immediatamente dopo di essa. Altrimenti, l'unica altra opzione di ridimensionamento è ridurre la partizione. Si applica anche alla partizione di swap.

Se stai usando il desktop Gnome, l'app "dischi" può offrire una visione della situazione.

In alternativa, possiamo usare Gparto per visualizzarlo.

Come puoi vedere, la partizione di swap è direttamente accanto alla partizione di root in questo sistema. Questo non lascia spazio per estendere la partizione di swap.

Tuttavia, è possibile eseguire operazioni di restringimento e riformattazione. Ulteriori informazioni sulla gestione delle partizioni utilizzando FDISK o GPART. Il comando REALIZE2FS è inoltre necessario per ridimensionare il filesstem esistente in conformità con la partizione ridimensionata.

Modifica delle dimensioni del file di swap

Per manipolare un file di swap, dobbiamo prima rimuoverlo dal pool di swap. Esegui il seguente comando:

$ sudo swapoff /new_swap

Ora, eseguiti il ​​comando DD per aumentare le dimensioni del file:

$ sudo dd if =/dev/zero di =/new_swap bs = 1g count = 2 oflag = append conv = notrUnc

Qui, abbiamo aggiunto 2 GB in più spazio al file di swap. Successivamente, riformiamo il file come scambio usando il seguente comando:

$ sudo mkswap /new_swap

Infine, possiamo abilitare lo scambio su di esso:

$ sudo swapon /new_swap
$ swapon

Si noti che in determinate situazioni, il tentativo di disabilitare il file di swap può comportare un errore come "SWAPOFF non riuscito: non può allocare la memoria". In tal caso, facciamo quanto segue:

  • Crea un nuovo file di swap con spazio più grande.
  • Attacca lo scambio più grande al sistema.
  • Elimina il file di swap più vecchio e più piccolo.
  • Rimuovi la voce del file di swap più vecchie da /etc/fstab (se applicabile).

Conclusione

Abbiamo discusso di un approfondito dimostrato sulla gestione degli spazi di swap in Ubuntu. Abbiamo discusso dei vari tipi di spazi di swap. Abbiamo imparato a ridimensionare le partizioni di swap e come lavorare con i file di swap (creazione, eliminazione e ridimensionamento).

Interessato a padroneggiare Ubuntu? Dai un'occhiata alla sottocategoria Ubuntu che contiene numerose guide sulla modifica del sistema Ubuntu e utilizzando vari strumenti.

Felice calcolo!