Wiki Ubuntu-it

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

Versione 104 del 06/05/2017 01.18.07

Nascondi questo messaggio


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa pagina è rivolta agli utenti poco esperti dei sistemi GNU/Linux e 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 quest'ultimo stabilisce che l'utilizzo della sola RAM non è più sufficiente per i processi attivi. Parte delle risorse che impegnano la memoria vengono quindi trasferite alla swap, in modo tale da riuscire ad utilizzare la RAM.
Si noti che:

  • La lettura di dati su disco fisico è più lenta che su RAM (ciò potrebbe causare pertanto 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.

Perché la swap è necessaria?

In teoria i computer più recenti e prestanti potrebbero essere dotati di una quantità tale di RAM da non necessitare l'utilizzo della swap. Tuttavia, indipendentemente dalle prestazioni del proprio computer, la swap risulta sempre utile, in particolare nei seguenti casi:

  • 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. Inoltre la swap facilita l'apertura contemporanea di più software che richiederebbero singolarmente un consumo medio-basso di memoria.

  • Ibernazione: Questa funzionalità scrive il contenuto della RAM nella swap prima di spegnere il computer. Per questo motivo la swap dovrebbe essere grande almeno quanto la RAM disponibile.

  • Eventi eccezionali: Possono accadere eventi imprevedibili, come ad esempio un errore di un programma che comincia a consumare memoria in modo inaspettato. In casi come questo la swap permette al computer di continuare a funzionare, permettendo all'utente di salvare il lavoro corrente e/o di tentare di risolvere il problema.

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

Di quanta swap ho bisogno?

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

  • Quantità di RAM disponibile: Generalmente 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.

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

Ho poca swap. Devo reinstallare Ubuntu impostando più memoria SWAP?

Assolutamente no. Per aggiungere ulteriore swap consultare la domanda successiva.

Come posso creare una memoria swap o aggiungerne altra?

Per creare o aggiungere memoria swap sono possibili tre metodi:

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

Creazione di una partizione di swap

  1. Creare dello spazio non allocato nel disco rigido se non presente (consultare questa guida per maggiori informazioni).

  2. Creare una partizione di swap (consultare [[

Hardware/DispositiviPartizioni/PartizionamentoManuale#Esempio_1_-_partizioni_primarie|questo paragrafo]] per maggiori informazioni). Per indicazioni relative alla dimensione da dedicare alla partizione di swap consultare questo paragrafo.

  1. Impostare il montaggio automatico per la partizione appena creata.

  2. Riavviare il sistema.

In caso la swap non fosse riconosciuta consultare questo paragrafo.

Creazione automatica di uno swap file

  1. Installare il pacchetto dphys-swapfile.

  2. Riavviare il sistema.

Verrà quindi creato automaticamente un file di swap.
Si noti che tale file sarà di dimensioni doppie alla memoria RAM presente. Pertanto assicurarsi di avere a disposizione sufficiente spazio nel sistema.

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 un file denominato swapfile grande 512MB (ossia 524288 blocchi da 1024 byte):

    dd if=/dev/zero of=/myswapfile bs=1024 count=524288
  3. Per convertire il file appena creato in file di swap, attribuirne i permessi e attivarlo, digitare in sequenza i seguenti comandi:

    mkswap /swapfile
    chown root:root /swapfile
    chmod 0600 /swapfile
    swapon /swapfile
    exit
  4. Per abilitare 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
    infine salvare e chiudere il file.
  5. 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 fa ad attivare o disattivare temporaneamente la swap?

Per disattivare 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 dal sistema. Che fare?

È una eventualità molto comune nei casi in cui è stata creata una nuova partizione di swap eliminando quella precedente, senza impostarne correttamente l'avvio. Infatti probabilmente la swap non viene montata all'avvio essendo cambiato il codice UUID.

In tal caso sarà sufficente:

  1. Identificare la partizione di swap e ottenere l'UUID (consultare [[Hardware/DispositiviPartizioni/IndividuarePartizioni|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.

Il mio computer ha poca RAM e utilizzando la swap rallenta molto. Che fare?

Il disco fisso (sia meccanico che a stato solito) è molto più lento della RAM, per cui l'utilizzo della swap porterà ad un rallentamento generale del computer. 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).

= In caso di più sistemi Linux installati nello stesso come devo regolarmi? =

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

SSD

[descrizione]

Perché non trovo la partizione di swap in Ubuntu 17.04?

[descrizione]

Ulteriori risorse


CategoryHomepage