8094
Commento:
|
18443
Nuovo stile note/avvisi
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from SwapFaq | |
Linea 5: | Linea 4: |
<<Indice>> | <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=522523&p=4074779"; rilasci="20.04 18.04")>> |
Linea 9: | Linea 9: |
{{attachment:Icone/Piccole/warning1.png}} '''Questa FAQ è rivolta agli utenti inesperti di Linux''' Le persone, spesso, si chiedono di quanta SWAP il loro sistema ha bisogno durante l'installazione del sistema operativo, oppure, dopo l'installazione, si domandano: avrò messo abbastanza SWAP? Forse dovrei reinstallare il sistema aggiungendone di più? Questa guida risponderà a tutte le vostre domande spiegandone il funzionamento e, qualora fosse necessario, spiegare come aggiungere altra memoria a quella già utilizzata nel sistema. = Di quanta SWAP ho bisogno? = La dimensione dell'area di '''swap''' è funzione della quantità di memoria installata e dell'utilizzo che verrà fatto del sistema. Solitamente, per sistemi con memoria fino a 512 (o anche 768) MiB, si consiglia la creazione di una partizione di swap di dimensione variabile da 1 (o 1,5) fino a 2 volte la RAM (quindi da 512 MiB a 1 GiB circa, a seconda delle esigenze). Per sistemi con quantitativi superiori a 512-768 MiB non è più necessario seguire la regola precedente: è sufficiente allocare un'area di swap con dimensioni pari alla RAM disponibile, e in casi di utilizzo a basse prestazioni (in ufficio per esempio), anche una quantità inferiore. È infatti eccessivo allocare 2 GiB per lo swap in sistemi dotati di 1 GiB di RAM (o più) e principalmente utilizzati per applicazioni da ufficio: in tal caso potranno bastare anche soltanto 512 MiB. |
Questa pagina, rivolta principalmente agli utenti meno esperti, raccoglie le principali '''[[https://it.wikipedia.org/wiki/Frequently_asked_questions|FAQ]]''' relative all'uso della '''[[https://it.wikipedia.org/wiki/Swap_(informatica)|swap]]'''. <<Anchor(swap)>> = Cos'è la swap? = In termini semplici, la '''swap''' è un'area del disco fisso che interviene in aiuto alla memoria [[https://it.wikipedia.org/wiki/RAM|RAM]] quando questa sta per esaurirsi. Può essere quindi immaginata come '''un'estensione della memoria RAM'''.<<BR>> La swap viene utilizzata dal sistema quando la RAM disponibile non è più sufficiente per i processi attivi. Parte delle risorse che impegnano la memoria RAM vengono perciò trasferite alla swap. Da notare che: * La lettura di dati su disco fisico è più lenta che su RAM. Pertanto quando è in uso la swap potrebbero verificarsi rallentamenti del sistema (per limitare questo fenomeno, se frequente, consultare il [[#swappiness|paragrafo]] dedicato). * La swap può essere presente attraverso una '''partizione dedicata''' (impostazione predefinita fino a Ubuntu 16.10), un file apposito detto '''swap file''' (impostazione predefinita da Ubuntu 17.04), o una combinazione di entrambi. <<Anchor(why)>> |
Linea 20: | Linea 23: |
Come vedremo, ci sono tre fondamentali e differenti motivi per avere una memoria swap: * Alcuni programmi necessitano di molta memoria di lavoro per funzionare correttamente. * Avere più memoria a portata di mano può comunque risultare utile in certe situazioni. * La memoria di lavoro viene ottimizzata. Per iniziare, diciamo che i computer sono cambiati molto da quando fu introdotto il sistema di memoria swap: all'inizio, si aveva la necessità di estendere la reale capacità di memoria di lavoro del computer; grazie allo swap, la memoria disponibile nel sistema diventava la somma dello spazio ram più lo spazio swap. Oggigiorno, la dotazione di ram è spesso abbastanza grande, al punto che il nostro computer potrebbe non avere per niente bisogno della swap. * Alcuni programmi necessitano di molta memoria di lavoro per funzionare correttamente: In certi casi, l'uso di programmi grossi (come Open``Office, giochi 3D, editor video e grafica) rende l'intero sistema bisognoso di memoria extra. In questi casi, la swap sarà usata per rendere il sistema più maneggevole. * Avere più memoria a portata di mano può comunque risultare utile in certe situazioni: possono accadere eventi imprevedibili (un programma va in errore e comincia a consumare memoria in modo inaspettato, alcune azioni chiedono più memoria del normale ed altri eventi del genere). In questi casi la swap permetterà al computer di continuare a funzionare, per salvare il lavoro corrente o per indagare su cosa stia andando per il verso sbagliato nei programmi aperti. * La memoria di lavoro viene ottimizzata: 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 ram può essere usata per ottimizzare la memoria cache. = Dovrei reinstallare Ubuntu impostando più memoria swap? = 0. Assolutamente no, non devi reinstallare niente. 0. Se hai bisogno di più swap, basta leggere la sezione "Come posso aggiungere altra memoria swap?". = Come posso aggiungere altra memoria swap? = * Di solito, le persone associano lo swap ad una partizione dedicata allo swap, forse perchè gli è stato suggerito di creare una partizione di swap durante l'installazione di Ubuntu. In realtà è possibile usare per lo swap sia una partizione che un normale file. * E' comunque vero che una partizione di swap è più veloce di un file di swap, ma la differenza non è poi così tanta. Se la vostra memoria swap viene usata di continuo dal sistema, il miglior modo per migliorare le prestazioni resta comunque l'aggiunta di un nuovo banco di ram, swappare una partizione o un file non cambierà di molto le cose in ogni caso. * In questo esempio aggiungeremo memoria creando un nuovo file di swap al sistema. * '''Sono sufficienti quattro passi''': 0. Creazione di un file con la dimensione voluta. 0. Formattazione di questo file per creare un dispositivo(device) di swap. 0. Aggiunta di questo swap file al sistema corrente. 0. Rendere permanente l'impostazione effettuata. * Facciamo il caso che abbiamo bisogno di 512 Mb di swap. * Creazione di un file con la dimensione voluta: 0. Il file di swap sarà /mnt/512Mb.swap. 0. Comando da usare: {{{ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512 }}} Il parametro importante è '''count=512''', il quale imposta il nostro file in modo che contenga 512 blocchi di '''bs=1M''', ovvero di dimensione uguale a 1 Mega Byte. * Formattazione di questo file per creare un dispositivo(device) di swap: {{{ sudo mkswap /mnt/512Mb.swap }}} * Aggiunta di questo swap file al sistema corrente: {{{ sudo swapon /mnt/512Mb.swap }}} Puoi controllare con {{{cat /proc/meminfo}}} che il file di swap è ora disponibile per il sistema. * Rendere permanente l'impostazione effettuata: 0. Apri il file di configurazione [[AmministrazioneSistema/Fstab|fstab]] con il seguente comando: {{{ sudo gedit /etc/fstab }}} 0. Aggiungi questa linea alla fine del file: '''/mnt/512Mb.swap none swap sw 0 0''' = Soluzioni a eventuali problemi = /!\ '''Nota''' I suggerimenti seguenti riguardano principalmente le partizioni di swap, ma potresti trovarli comunque d'aiuto. Quando trovi hdyX, la y(è una lettera) e la X(è un numero) vanno sostituite in base alla configurazione dei tuoi dischi rigidi e delle tue partizioni. '''Aiuto!''' Lo swap file non viene usato dal sistema! Quando da terminale lancio il comando '''free''' mi compare qualcosa come: {{{ tom@tom:~$ free total used free shared buffers cached Mem: 515980 448664 67316 0 17872 246348 -/+ buffers/cache: 184444 331536 Swap: 674688 0 674688 }}} * Per prima cosa, cerchiamo di capire se il sistema è proprio impossibilitato a usare lo swap, o se piuttosto dipende dal fatto che non è necessario in questo momento usare memoria di swap. Prova ad avviare diversi programmi "pesanti"(e.g. Gimp, web browser, Openoffice etc) e dai di nuovo il comando '''free'''. Viene usato lo swap, ora? * Assicurati che nel file {{{/etc/fstab}}} sia presente questa riga (y è una lettera, X un numero): {{{ /dev/hdyX none swap sw 0 0 }}} * Prova a disabilitare la swap, e successivamente ricrearlo e abilitarlo di nuovo. {{{ swapoff -a /sbin/mkswap /dev/hdyX swapon -a }}} * Ad alcuni ha funzionato questa procedura: 0. cfdisk: Cancella la vecchia swap e ricreane una nuova. 0. Riavvia il computer. (obbligatorio) 0. mkswap /dev/hda8 0. swapon -a |
Alcuni computer recenti e prestanti sono dotati di una quantità tale di RAM da non necessitare praticamente della swap.<<BR>> Tuttavia, indipendentemente dalle prestazioni del proprio computer, è quasi sempre preferibile avere a disposizione un'area di swap poiché potrebbe tornare utile in diversi casi. <<BR>> 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 [[InternetRete/Navigazione#Browser_per_navigare| browser web]] (specie se con più schede aperte e/o con l'apertura di siti molto "pesanti"), suite per ufficio come [[Ufficio/LibreOffice|LibreOffice]], alcuni programmi di [[Grafica|grafica]] e [[Multimedia|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à (''suspend-to-disk'') 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 questi malfunzionamenti provocassero 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. <<Anchor(dimensioni)>> = 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 indica le dimensioni consigliate nei casi più comuni, riportando lo spazio da dedicare alla partizione di swap (nelle ultime tre colonne) a seconda della quantità di RAM in dotazione (prima colonna): ||<rowstyle="background-color: #cccccc;" tablewidth="70%" :25%>'''Dimensioni RAM disponibile'''||<:25%>'''Dimensioni minime /<<BR>>Senza ibernazione'''||<:25%>'''Con ibernazione'''||<:25%>'''Dimensioni massime'''|| ||<:> 128 MB (o inferiore)||<:> 192 MB [[#note|¹]] ||<:> 512 MB [[#note|¹]] ||<:> 512 MB[[#note|¹]] || ||<:> 256 MB ||<:> 256 MB ||<:> 512 MB ||<:> 512 MB || ||<:> 512 MB ||<:> 512 MB ||<:> 1024 MB ||<:> 1024 MB || ||<:> 768 MB ||<:> 768 MB ||<:> 1536 MB ||<:> 1536 MB || ||<:> 1 GB ||<:> 1 GB ||<:> 2 GB ||<:> 2 GB || ||<:> 2 GB ||<:> 1 GB ||<:> 3 GB ||<:> 4 GB || ||<:> 3 GB ||<:> 2 GB ||<:> 4 GB ||<:> 6 GB || ||<:> 4 GB ||<:> 2 GB ||<:> 5 GB ||<:> 8 GB || ||<:> 5 GB ||<:> 2 GB ||<:> 6 GB ||<:> 9 GB || ||<:> 6 GB ||<:> 2 GB ||<:> 7 GB ||<:> 10 GB || ||<:> 8 GB ||<:> 2 GB [[#note|²]] ||<:> 8 GB ||<:> 13 GB || ||<:> 12 GB ||<:> 2 GB [[#note|²]] ||<:> 9 GB ||<:> 19 GB || ||<:> 16 GB ||<:> 2 GB [[#note|²]] ||<:> 10 GB ||<:> 26 GB || ||<:> 24 GB ||<:> 2 GB [[#note|²]] ||<:> 11 GB ||<:> 36 GB || ||<:> 32 GB ||<:> 2 GB [[#note|²]] ||<:> 12 GB ||<:> 48 GB || <<Anchor(note)>> ¹ Diversamente dai casi successivi, creare una swap con proporzioni maggiori rispetto alla RAM per supplire alle sue dimensioni ridotte. <<BR>> ² In alternativa è possibile non utilizzare la swap (prendere visione di [[#why|questo paragrafo]] per essere informati su possibili problematiche, per quanto rare con quantitativi molto elevati di RAM). <<Anchor(show)>> = Come ottengo informazioni sulla swap presente? = Per avere informazioni su quantità e tipo di swap presente nel sistema è sufficiente digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{ swapon --show }}} L'output sarà simile al seguente esempio: {{{ NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2 /dev/sda3 partition 4G 0B -3 }}} dove la prima riga indica uno swapfile di 2 GB e la seconda una partizione di swap di 4 GB. = Il mio sistema non ha swap o ne ha poca. Devo reinstallare? = Assolutamente no! A tal proposito consultare la [[#aggiungere|domanda successiva]]. <<Anchor(aggiungere)>> = Come si crea o aggiunge memoria swap? = Per creare o aggiungere memoria swap esistono quattro metodi qui sotto descritti: * Creazione o espansione di una partizione di swap. * Creazione automatica di un file di swap. * Creazione manuale di un file di swap. * Aumento delle dimensioni di un file di swap già esistente. {{{#!wiki note Valutare quale soluzione adottare a seconda delle proprie preferenze o necessità (ad esempio una partizione di swap condivisa sarebbe consigliabile in caso di [[#dualboot|multiboot]] fra più sistemi GNU/Linux). La generazione automatica di un file di swap è il metodo teoricamente più semplice e meno rischioso (l'utente non deve editare il file `/etc/fstab` o modificare il partizionamento). In caso di dubbi su quale delle tre procedure adottare, è possibile chiedere informazioni attraverso i [[http://www.ubuntu-it.org/supporto|canali di supporto]] della [[http://www.ubuntu-it.org/comunita|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 [[#dimensioni|questo paragrafo]]). * Conoscere la procedura e le precauzioni da adottare per la modifica delle partizioni (se necessario consultare [[Hardware/DispositiviPartizioni/PartizionamentoManuale|questa guida]] per maggiori informazioni). Seguire la procedura di seguito indicata: 0. Creare dello spazio non allocato nel disco rigido (adiacente alla partizione di swap se quest'ultima è già esistente). 0. Creare una partizione di swap oppure espandere quella esistente. 0. Se è stata creata una nuova partizione di swap, [[Hardware/DispositiviPartizioni/MontarePartizioni|impostarne il montaggio automatico]]. Se invece è stata espansa una partizione di swap già esistente, [[#riconoscimento|verificare]] che sia correttamente impostato il file `/etc/fstab`. 0. Riavviare il sistema. Qualora la swap non fosse riconosciuta in seguito a questa procedura, consultare [[#riconoscimento|questo paragrafo]]. == Creazione automatica di un file di swap == {{{#!wiki note 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. }}} 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://dphys-swapfile|dphys-swapfile]]. 0. Riavviare il sistema. Al riavvio verrà quindi creato automaticamente un file di swap. == Creazione manuale di un file di swap == 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguenti comando per utilizzarlo come utente ''root'': {{{ sudo bash }}} 0. Creare un file avente la [[#dimensioni|dimensione necessaria]]. Come esempio, con il comando seguente verrà creato il file `swapfile` grande 512 MB: {{{ dd if=/dev/zero of=/swapfile bs=1024 count=524288 }}} dove il parametro `bs` serve per impostare la dimensione dei blocchi (espressa in in byte) e `count` il numero di blocchi. 0. 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 }}} 0. Per attivare il file di swap ad ogni avvio, aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/fstab` e aggiungere la stringa {{{ /swapfile swap swap defaults 0 0 }}} 0. Salvare e chiudere il file. 0. Riavviare il computer. == Aumento di un file di swap già esistente == 0. Identificare il nome dello swapfile con le istruzioni di [[#show|questo paragrafo]] (in via predefinita è `/swapfile`), quindi consultare il file `/etc/fstab`, per assicurarsi che il file di swap sia impostato per il mount automatico all'avvio, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ cat /etc/fstab }}} Se lo swapfile è impostato correttamente per l'avvio sarà presente una riga simile alla seguente:{{{ /swapfile swap swap sw 0 0 }}} 0. Disattivare la swap con il comando:{{{ sudo swapoff -a }}} 0. Per aumentare lo swapfile delle dimensioni desiderate, digitare il seguente comando, modificando eventualmente il parametro `2G` (per swapfile di 2 GB) a seconda delle proprie esigenze:{{{ sudo fallocate -l 2G /swapfile }}} Qualora l'output restituisse degli errori, digitare il comando:{{{ dd if=/dev/zero of=/mnt/swapfile bs=1024 count=2097152 }}} dove il parametro `bs` serve per impostare la dimensione dei blocchi (espressa in in byte) e `count` il numero di blocchi. 0. Digitare in sequenza i seguenti comandi, (i quali provvederanno a limitare i permessi del file al solo utente root, a impostare il file come swap e infine a riattivarlo): {{{ sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile }}} <<Anchor(verifica)>> = Come si verifica se la swap è attiva? = Digitare nel [[AmministrazioneSistema/Terminale|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/disattiva la swap? = Per disattivare temporaneamente la swap digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ sudo swapoff -a }}} Al contrario, per attivare la swap digitare:{{{ sudo swapon -a }}} <<Anchor(riconoscimento)>> = 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 [[https://it.wikipedia.org/wiki/Universally_unique_identifier|UUID]]. In tal caso sarà sufficiente: 0. Identificare la partizione di swap e ottenerne l'UUID (consultare [[Hardware/DispositiviPartizioni/IndividuarePartizioni|questa guida]] per maggiori informazioni). 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ cat /etc/fstab }}} per avere conferma dell'UUID non corrispondente. In tal caso procedere con i passaggi successivi. 0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/fstab`. 0. Individuare la stringa relativa alla swap, quindi aggiornare il codice UUID con quello corrente. 0. Salvare e chiudere il file. 0. Riavviare il computer. <<Anchor(swappiness)>> = Ho poca RAM e il sistema rallenta. Che fare? = Come detto nella [[#swap|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à cioè a "swappare", come si dice in gergo). <<BR>> '''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: 0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/sysctl.conf`. 0. Aggiungere la riga: {{{ vm.swappiness = 10 }}} 0. Salvare e chiudere il file. 0. Riavviare il computer per attuare le modifiche. {{{#!wiki tip È 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). Si consiglia di inserire un valore massimo di 1 se in uso un SSD e 10 in presenza di HDD (essendo differenti i due tipi di supporto quanto a prestazioni e tempi di usura). }}} <<Anchor(dualboot)>> = 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 [[#riconoscimento|questo paragrafo]]. <<Anchor(ssd)>> = Ho un disco SSD. Quali accorgimenti devo adottare? = Generalmente parlando, in caso di utilizzo di [[https://it.wikipedia.org/wiki/Unit%C3%A0_a_stato_solido|drive a stato solido (SSD)]], ridurre le scritture su disco può aiutare ad aumentare la durata di quest'ultimo e a garantire migliori prestazioni nel tempo. Quindi è possibile optare per: * modificare il valore di [[#swappiness|swappiness]]; * se il computer è dotato anche di disco rigido meccanico, creare una partizione o file di swap su quest'ultimo anziché sull'SSD. * non utilizzare la swap qualora si abbiano a disposizione quantitativi sufficienti di memoria RAM (8 GB o più). {{{#!wiki tip Tuttavia qualora non si disponessero di grandi quantitativi di RAM e/o di un disco rigido meccanico, si consiglia di abilitare una swap, anche di dimensioni minime (es: 1 GB). In tal caso disabilitare la funzione dell'ibernazione. }}} = Dov'è la partizione di swap in Ubuntu 17.04 (e successive)? = A partire dalla versione 17.04 di Ubuntu la partizione di swap è stata sostituita dal file `/swapfile`. Perciò in caso di nuove installazioni la partizione di swap potrebbe essere assente. Si segnala inoltre che: * La partizione di swap viene mantenuta in caso di [[Installazione/NoteAvanzamento|avanzamento]] da versioni precedenti; * Rimane sempre disponibile la possibilità dell'utente di impostare una partizione di swap al posto dello '''swapfile'''; * Viene creata una partizione di swap in luogo dello '''swapfile''' selezionando l'opzione '''LVM''' (consultare [[Installazione/InstallareUbuntu#Tipo_di_installazione|questa pagina]] per maggiori informazioni). = Perché se installo su filesystem Btrfs lo swapfile non è attivo? = Per risolvere questo problema consultare [[Hardware/DispositiviPartizioni/Swap/SwapfileSuBtrfs|questa guida]]. |
Linea 110: | Linea 256: |
* [[https://help.ubuntu.com/community/SwapFaq|Documento originale]] ## PrioritàBassa ## RevisioneStilistica ## https://help.ubuntu.com/community/SwapFaq da completare. ## da spostare sotto Installazione ## da questo punto in poi non modificare! |
* [[https://help.ubuntu.com/community/SwapFaq|Wiki internazionale]] ## da questo punto in poi non modificare |
Linea 121: | Linea 261: |
CategoryAmministrazione CategoryInstallazioneSistema CategoryDaRevisionare | CategoryAmministrazione CategoryInstallazioneSistema |
Indice
- Introduzione
- Cos'è la swap?
- A cosa serve la swap?
- Di quanta swap ho bisogno?
- Come ottengo informazioni sulla swap presente?
- Il mio sistema non ha swap o ne ha poca. Devo reinstallare?
- Come si crea o aggiunge memoria swap?
- Come si verifica se la swap è attiva?
- Come si attiva/disattiva la swap?
- La partizione di swap non è riconosciuta o utilizzata. Che fare?
- Ho poca RAM e il sistema rallenta. Che fare?
- Come regolarsi in caso di più sistemi Linux installati?
- Ho un disco SSD. Quali accorgimenti devo adottare?
- Dov'è la partizione di swap in Ubuntu 17.04 (e successive)?
- Perché se installo su filesystem Btrfs lo swapfile non è attivo?
- Ulteriori risorse
Guida verificata con Ubuntu: 20.04
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 aiuto 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 la RAM disponibile non è più sufficiente per i processi attivi. Parte delle risorse che impegnano la memoria RAM vengono perciò trasferite alla swap.
Da notare che:
La lettura di dati su disco fisico è più lenta che su RAM. Pertanto quando è in uso la swap potrebbero verificarsi rallentamenti del sistema (per limitare questo fenomeno, se frequente, consultare il paragrafo dedicato).
La swap può essere presente attraverso una partizione dedicata (impostazione predefinita fino a Ubuntu 16.10), un file apposito detto swap file (impostazione predefinita da Ubuntu 17.04), 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 praticamente della swap.
Tuttavia, indipendentemente dalle prestazioni del proprio computer, è quasi 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à (suspend-to-disk) 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 questi malfunzionamenti provocassero 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 indica le dimensioni consigliate nei casi più comuni, riportando lo spazio da dedicare alla partizione di swap (nelle ultime tre colonne) a seconda della quantità di RAM in dotazione (prima colonna):
Dimensioni RAM disponibile |
Dimensioni minime / |
Con ibernazione |
Dimensioni massime |
128 MB (o inferiore) |
192 MB ¹ |
512 MB ¹ |
512 MB¹ |
256 MB |
256 MB |
512 MB |
512 MB |
512 MB |
512 MB |
1024 MB |
1024 MB |
768 MB |
768 MB |
1536 MB |
1536 MB |
1 GB |
1 GB |
2 GB |
2 GB |
2 GB |
1 GB |
3 GB |
4 GB |
3 GB |
2 GB |
4 GB |
6 GB |
4 GB |
2 GB |
5 GB |
8 GB |
5 GB |
2 GB |
6 GB |
9 GB |
6 GB |
2 GB |
7 GB |
10 GB |
8 GB |
2 GB ² |
8 GB |
13 GB |
12 GB |
2 GB ² |
9 GB |
19 GB |
16 GB |
2 GB ² |
10 GB |
26 GB |
24 GB |
2 GB ² |
11 GB |
36 GB |
32 GB |
2 GB ² |
12 GB |
48 GB |
¹ Diversamente dai casi successivi, creare una swap con proporzioni maggiori rispetto alla RAM per supplire alle sue dimensioni ridotte.
² In alternativa è possibile non utilizzare la swap (prendere visione di questo paragrafo per essere informati su possibili problematiche, per quanto rare con quantitativi molto elevati di RAM).
Come ottengo informazioni sulla swap presente?
Per avere informazioni su quantità e tipo di swap presente nel sistema è sufficiente digitare nel terminale il seguente comando:
swapon --show
L'output sarà simile al seguente esempio:
NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2 /dev/sda3 partition 4G 0B -3
dove la prima riga indica uno swapfile di 2 GB e la seconda una partizione di swap di 4 GB.
Il mio sistema non ha swap o ne ha poca. Devo reinstallare?
Assolutamente no! A tal proposito consultare la domanda successiva.
Come si crea o aggiunge memoria swap?
Per creare o aggiungere memoria swap esistono quattro metodi qui sotto descritti:
- Creazione o espansione di una partizione di swap.
- Creazione automatica di un file di swap.
- Creazione manuale di un file di swap.
- Aumento delle dimensioni di un file di swap già esistente.
Valutare quale soluzione adottare a seconda delle proprie preferenze o necessità (ad esempio una partizione di swap condivisa sarebbe consigliabile in caso di multiboot fra più sistemi GNU/Linux). La generazione automatica di un file di swap è il metodo teoricamente più semplice e meno rischioso (l'utente non deve editare il file /etc/fstab o modificare il partizionamento). 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 modifica delle partizioni (se necessario consultare questa guida per maggiori informazioni).
Seguire la procedura di seguito indicata:
- Creare dello spazio non allocato nel disco rigido (adiacente alla partizione di swap se quest'ultima è già esistente).
- Creare una partizione di swap oppure espandere quella esistente.
Se è stata creata una nuova partizione di swap, impostarne il montaggio automatico. Se invece è stata espansa una partizione di swap già esistente, verificare che sia correttamente impostato il file /etc/fstab.
- Riavviare il sistema.
Qualora la swap non fosse riconosciuta in seguito a 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.
Installare il pacchetto dphys-swapfile.
- Riavviare il sistema.
Al riavvio verrà quindi creato automaticamente un file di swap.
Creazione manuale di un file di swap
Digitare nel terminale il seguenti comando per utilizzarlo come utente root:
sudo bash
Creare un file avente la dimensione necessaria. Come esempio, con il comando seguente verrà creato il file swapfile grande 512 MB:
dd if=/dev/zero of=/swapfile bs=1024 count=524288
dove il parametro bs serve per impostare la dimensione dei blocchi (espressa in in byte) e count il numero di blocchi.
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
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
- Salvare e chiudere il file.
- Riavviare il computer.
Aumento di un file di swap già esistente
Identificare il nome dello swapfile con le istruzioni di questo paragrafo (in via predefinita è /swapfile), quindi consultare il file /etc/fstab, per assicurarsi che il file di swap sia impostato per il mount automatico all'avvio, digitando nel terminale il comando:
cat /etc/fstab
Se lo swapfile è impostato correttamente per l'avvio sarà presente una riga simile alla seguente:
/swapfile swap swap sw 0 0
Disattivare la swap con il comando:
sudo swapoff -a
Per aumentare lo swapfile delle dimensioni desiderate, digitare il seguente comando, modificando eventualmente il parametro 2G (per swapfile di 2 GB) a seconda delle proprie esigenze:
sudo fallocate -l 2G /swapfile
Qualora l'output restituisse degli errori, digitare il comando:
dd if=/dev/zero of=/mnt/swapfile bs=1024 count=2097152
dove il parametro bs serve per impostare la dimensione dei blocchi (espressa in in byte) e count il numero di blocchi.
Digitare in sequenza i seguenti comandi, (i quali provvederanno a limitare i permessi del file al solo utente root, a impostare il file come swap e infine a riattivarlo):
sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
Come si verifica 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/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à sufficiente:
Identificare la partizione di swap e ottenerne l'UUID (consultare questa guida per maggiori informazioni).
Digitare nel terminale:
cat /etc/fstab
per avere conferma dell'UUID non corrispondente. In tal caso procedere con i passaggi successivi.Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.
- Individuare la stringa relativa alla swap, quindi aggiornare il codice UUID con quello corrente.
- Salvare e chiudere il file.
- Riavviare il computer.
Ho 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à cioè 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:
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/sysctl.conf.
Aggiungere la riga:
vm.swappiness = 10
- Salvare e chiudere il file.
- 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). Si consiglia di inserire un valore massimo di 1 se in uso un SSD e 10 in presenza di HDD (essendo differenti i due tipi di supporto quanto a prestazioni e tempi di usura).
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?
Generalmente parlando, in caso di utilizzo di drive a stato solido (SSD), ridurre le scritture su disco può aiutare ad aumentare la durata di quest'ultimo e a garantire migliori prestazioni nel tempo.
Quindi è possibile optare per:
modificare il valore di swappiness;
- se il computer è dotato anche di disco rigido meccanico, creare una partizione o file di swap su quest'ultimo anziché sull'SSD.
- non utilizzare la swap qualora si abbiano a disposizione quantitativi sufficienti di memoria RAM (8 GB o più).
Tuttavia qualora non si disponessero di grandi quantitativi di RAM e/o di un disco rigido meccanico, si consiglia di abilitare una swap, anche di dimensioni minime (es: 1 GB). In tal caso disabilitare la funzione dell'ibernazione.
Dov'è la partizione di swap in Ubuntu 17.04 (e successive)?
A partire dalla versione 17.04 di Ubuntu la partizione di swap è stata sostituita dal file /swapfile. Perciò in caso di nuove installazioni la partizione di swap potrebbe essere assente.
Si segnala inoltre che:
La partizione di swap viene mantenuta in caso di avanzamento da versioni precedenti;
Rimane sempre disponibile la possibilità dell'utente di impostare una partizione di swap al posto dello swapfile;
Viene creata una partizione di swap in luogo dello swapfile selezionando l'opzione LVM (consultare questa pagina per maggiori informazioni).
Perché se installo su filesystem Btrfs lo swapfile non è attivo?
Per risolvere questo problema consultare questa guida.