Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 109 del 08/05/2017 10.22.51

Nascondi questo messaggio


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa pagina, rivolta principalmente agli utenti meno esperti, raccoglie le principali FAQ relative all'uso della swap.

Cos'è la swap?

In termini semplici, la swap è un'area del disco fisso che interviene in auto alla memoria RAM quando questa sta per esaurirsi. Può essere quindi immaginata come un'estensione della memoria RAM.
La swap viene utilizzata dal sistema quando l'utilizzo della sola RAM non è più sufficiente per i processi attivi. Parte delle risorse che impegnano la memoria RAM vengono quindi trasferite alla swap.

Da notare che:

  • La lettura di dati su disco fisico è più lenta che su RAM. Petanto quando è in uso la swap potrebbero verificarsi rallentamenti del sistema (per limitare questo fenomeno consultare il paragrafo dedicato).

  • La swap può essere presente attraverso una partizione dedicata, un file apposito (swap file), o una combinazione di entrambi.

A cosa serve la swap?

Alcuni computer recenti e prestanti sono dotati di una quantità tale di RAM da non necessitare l'utilizzo della swap.
Tuttavia, indipendentemente dalle prestazioni del proprio computer, è sempre preferibile avere a disposizione un'area di swap poiché potrebbe tornare utile in diversi casi.
Di seguito sono elencati alcuni motivi per i quali la swap risulta spesso utile o necessaria:

  • Migliore utilizzo di programmi: Alcuni software richiedono un consumo elevato di memoria. Fra questi ricordiamo i browser web (specie se con più schede aperte e/o con l'apertura di siti molto "pesanti"), suite per ufficio come LibreOffice, alcuni programmi di grafica e editing multimediale. Quindi la swap facilita l'apertura, anche contemporanea, di più software che richiede un maggiore consumo di memoria.

  • Uso dell'ibernazione: Questa funzionalità scrive il contenuto della RAM nella swap prima di spegnere il computer. Per questo motivo, quando è abilitata l'ibernazione, la swap dovrebbe essere grande almeno quanto la RAM disponibile.

  • Ottimizzazione della memoria: L'accesso alla memoria RAM è estremamente più veloce rispetto al disco rigido. Normalmente un file (sia esso un file dati, un binario oppure librerie) viene letto sul disco rigido dal sistema, che subito dopo lo alloca nella RAM, in modo tale che sia pronto all'uso. Questa parte di RAM si chiama "memoria cache" e porta ad un'enorme riduzione dei tempi di risposta del computer. Linux automaticamente muove la memoria riservata per i programmi (quelli che non sono in uso al momento) dalla RAM al disco fisso, in modo tale che questa possa essere usata per ottimizzare la memoria cache.

  • Eventi eccezionali: Talvolta possono accadere eventi inaspettati, come ad esempio errori di programmi. Se questo malfunzionamento provocasse un consumo anomalo di memoria, la swap consentirebbe al computer di continuare a funzionare, permettendo quindi all'utente di salvare il lavoro corrente e/o di tentare di risolvere il problema.

Di quanta swap ho bisogno?

La quantità di swap necessaria dipende essenzialmente da due fattori:

  • Quantità di RAM disponibile: in situazioni normali, se computer dotati di un quantitativo sufficiente di RAM faranno un uso abbastanza sporadico della swap, al contrario computer più vecchi e/o con minore RAM ricorreranno più frequentemente all'utilizzo della swap. Per questo motivo, in generale, si consiglia di fornire ai computer dotati di poca RAM (fino a 1 GB) una maggiore quantità di swap (fino al doppio delle dimensioni della RAM).

  • Utilizzo dell'ibernazione: per l'utilizzo di questa funzionalità si consiglia una swap di dimensioni superiori alla RAM.

La seguente tabella rappresenta i casi più comuni e indica nelle ultime tre colonne lo spazio da dedicare alla swap:

RAM (in MB)

Senza ibernazione

Con ibernazione

Dimensioni massime

256

256

512

512

512

512

1024

1024

768

768

1536

1536

RAM (in GB)

Senza ibernazione

Con ibernazione

Dimensioni massime

1

1

2

2

2

1

3

4

3

2

5

6

4

2

7

8

5

2

7

10

6

2

8

12

8

3

11

16

12

3

15

24

16

4

20

32

24

5

29

48

32

6

38

64

Se il mio sistema non ha swap o ne ha poca, devo reinstallare?

Assolutamente no. A tal proposito consultare la domanda successiva.

Come si crea memoria o aggiunge memoria swap?

Per creare o aggiungere memoria swap sono possibili tre metodi:

  • Creazione o espansione di una partizione di swap.
  • Creazione automatica di un file di swap.
  • Creazione manuale di un file di swap.

Queste tre procedure sono descritte nei paragrafi seguenti.

In caso di dubbi su quale delle tre procedure adottare, è possibile chiedere informazioni attraverso i canali di supporto della comunità.

Creazione o espansione di una partizione di swap

Come prerequisiti per questa operazione è necessario:

  • Stabilire la quantità di swap necessaria per il proprio sistema (se necessario consultare questo paragrafo).

  • Conoscere la procedura e le precauzioni da adottare per la modificare partizioni (se necessario consultare questa guida per maggiori informazioni).

Seguire la procedura di seguito indicata:

  1. Creare dello spazio non allocato nel disco rigido (adiacente alla partizione di swap se quest'ultima è già esistente).
  2. Creare una partizione di swap oppure espandere quella esistente.
  3. Impostare il montaggio automatico per la partizione appena creata.

  4. Riavviare il sistema.

In caso la swap non fosse riconosciuta a seguito di questa procedura, consultare questo paragrafo.

Creazione automatica di un file di swap

Tale procedura andrà a creare un file di swap delle dimensioni di circa il doppio della memoria RAM presente. Pertanto assicurarsi di avere a disposizione spazio sufficiente nel sistema.

  1. Installare il pacchetto dphys-swapfile.

  2. Riavviare il sistema.

Al riavvio verrà quindi creato automaticamente un file di swap.

Creazione manuale di un file di swap

  1. Digitare nel terminale il seguenti comando per utilizzarlo come utente root:

    sudo bash
  2. Creare quindi un file avente la dimensione necessaria. Con il comando seguente verrà creato il file swapfile grande 512 MB:

    dd if=/dev/zero of=/swapfile bs=1024 count=524288
  3. Digitare in sequenza i seguenti comandi (i quali provvederanno rispettivamente a convertire in swap il file, impostarne i permessi, attivare la swap ed uscire dall'accesso come root):

    mkswap /swapfile
    chown root:root /swapfile
    chmod 0600 /swapfile
    swapon /swapfile
    exit
  4. Per attivare il file di swap ad ogni avvio, aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e aggiungere la stringa

    /swapfile swap swap defaults 0 0
  5. Salvare e chiudere il file.
  6. Riavviare il computer.

Come posso verificare se la swap è attiva?

Digitare nel terminale:

free

Il risultato sarà simile al seguente:

              total        used        free      shared  buff/cache   available
Mem:        3929652     1347696      595748      134884     1986208     2123652
Swap:       4246652           0     4246652

dove la prima riga si riferisce alla RAM mentre la seconda alla swap.

Come si attiva e disattiva la swap?

Per disattivare temporaneamente la swap digitare nel terminale:

sudo swapoff -a

Al contrario, per attivare la swap digitare:

sudo swapon -a

La partizione di swap non è riconosciuta o utilizzata. Che fare?

Questo problema è molto comune nei casi in cui sia stata creata una nuova partizione di swap eliminando quella precedente. Infatti, in casi come questo, la swap non viene riconosciuta e montata all'avvio in quanto può essere cambiato il codice UUID.

In tal caso sarà sufficente:

  1. Identificare la partizione di swap e ottenerne l'UUID (consultare questa guida per maggiori informazioni).

  2. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.

  3. Individuare la stringa relativa alla swap, quindi aggiornare il codice UUID.
  4. Salvare e chiudere il file.
  5. Riavviare il computer.

Ho con poca RAM e il sistema rallenta. Che fare?

Come detto nella prima risposta, il disco fisso (sia meccanico che a stato solito) è molto più lento della RAM. Per cui un'utilizzo intenso della swap porterà il computer a rallentare (tenderà a "swappare", come si dice in gergo).
Ubuntu di default inizia a scrivere nell'area di swap quando la RAM è impegnata al 60%. Questo valore, adeguato per computer con un buon quantitativo di RAM, risulta troppo basso in quei computer che dispongono di poca RAM.

Per ritardare l'uso dell'area di swap fino al riempimento del 90% della RAM seguire i seguenti passaggi:

  1. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/sysctl.conf.

  2. Aggiungere la riga:

     vm.swappiness = 10
  3. Salvare e chiudere il file.
  4. Riavviare il computer per attuare le modifiche.

    È possibile scegliere un valore diverso del fattore di swappiness. Se si intende iniziare a scrivere nella swap quando la RAM è occupata alla percentuale X, inserire 100-X come parametro di swappiness (ad esempio, vm.swappiness = 20 per utilizzare la swap quando è in uso l'80% della RAM).

Come regolarsi in caso di più sistemi Linux installati?

Due o più sistemi Gnu/Linux installati in dualboot/multiboot nello stesso computer possono tranquillamente utilizzare la stessa partizione di swap. Non è pertanto necessario creare una nuova partizione di swap se ce n'è già una presente.
Nel caso la swap non venga riconosciuta dal sistema consultare questo paragrafo.

Ho un disco SSD. Quali accorgimenti devo adottare?

In caso di utilizzo di drive a stato solido (SSD), generalmente ridurre le scritture su disco può aiutare ad aumentare la durata di quest'ultimo e garantirne migliori prestazioni nel tempo.

Quindi potrebbe essere utile:

  • non utilizzare a swap qualora si abbiano a disposizione quantitativi sufficienti di memoria RAM (8 GB o più);
  • se il computer è dotato anche di disco rigido meccanico, creare una partizione di swap su quest'ultimo.

Tuttavia qualora non si disponesse di quantitativi elevati di RAM e/o di un disco rigido meccanico, si consiglia di abilitare una swap, anche di dimensioni ridotte. In tal caso disabilitare la funzione dell'ibernazione.

Dov'è la partizione di swap in Ubuntu 17.04?

A partire dalla versione 17.04 di Ubuntu la partizione di swap è stata sostituita dal file /swapfile.
La partizione di swap viene mantenuta in caso di:

Ulteriori risorse


CategoryHomepage