Importanza della partizione di swap


34
  • Qual è lo scopo di una partizione di swap?
  • Come faccio a sapere di avere una partizione di swap sufficiente? Non troppo / poco.

Il mio PC Ubuntu è usato per cose tipiche:

  • Web (e-mail, Facebook, ecc.)
  • Alcuni film
  • il gioco è raro

Da quanto è stato pubblicato sembra che io abbia MODO troppo scambio. 3 GB di RAM, 300 GB di HD e una partizione di 8 GB per lo scambio.
lamcro

2
Lo scambio extra che non viene utilizzato non ti farà del male e recuperare l'1,7% del tuo drive per ridurlo non è probabilmente utile. Sì, è molto più grande di quanto tu possa mai usare, non me ne preoccuperei.
msw,

1
Puoi anche vederlo come una partizione di swap "a prova di futuro", se aggiungi memoria aggiuntiva al tuo sistema, non dovrai ingrandire lo swap ... :)
JanC

Risposte:


15

La partizione di swap ha un paio di scopi.

  • Serve come RAM di "backup". Cioè, se il tuo computer esaurisce la RAM, utilizzerà l'area di scambio come fonte temporanea di più memoria. Più specificamente, "scamberà" gli elementi inutilizzati dalla RAM nell'area di scambio per lasciare spazio libero per le applicazioni che ne hanno bisogno in quel momento. Questo non è l'ideale in quanto la velocità di trasferimento dei dati sul disco rigido è significativamente inferiore rispetto alla normale RAM. In pratica ciò significa che è molto più lento recuperare informazioni dall'area di scambio.

  • Viene utilizzato quando il computer è in letargo. L'ibernazione comporta l'acquisizione di un'immagine della RAM nel suo stato attuale (come se un ISO rappresenti un'immagine) e la salva nell'area di scambio. Ricarica quindi questa immagine al riavvio del computer.

  • Per essere più utile, l'area di swap dovrebbe essere almeno (RAM * 1.5) sebbene si consiglia di più. Ad esempio, sul mio sistema con 3 GB di RAM, ho un'area di scambio di 7,2 GB.


Se non usi qualcosa, è l' ideale scambiarlo su disco e usare la RAM per le cose che usi (ad esempio spostare CUPS o altri demoni che non usi molto spesso per scambiare ti dà più memoria per il disco di cache dati che vengono effettivamente utilizzati molto).
JanC

-1; "(RAM * 1.5) anche se si consiglia di più" - sul PC desktop? Stai ripetendo la saggezza convenzionale che è stata falsa per anni.

@ user280493 Vale la pena notare che la risposta era anni ... anni fa, quando hai commentato.
Crisfole,

7

Questo è molto simile alla domanda sulla dimensione "giusta" per una partizione di swap. Molte delle stesse informazioni fornite dalla mia risposta qui si applicano: fondamentalmente, se si desidera ibernare, in genere si desidera che lo spazio di swap sia almeno grande quanto la RAM e diverso da quello che è facilmente sufficiente un numero circolare come 1 o 2 GB. Poiché lo swap è molto più lento della RAM, se stai riempiendo più gigabyte di swap il tuo computer è quasi certamente diventato insolitamente lento.

Inoltre, non è necessario creare una partizione di swap: i file di swap (disponibili sui filesystem linux tradizionali) offrono le stesse prestazioni e rendono banalmente facile aggiungere più spazio di swap se si decide di non averne abbastanza.


4

qui un'informazione molto approfondita sullo swap

alcune persone dicono il doppio del tuo montone ma personalmente lo consiglio:

swap = 1,5 X RAM totale

Esempio :

se hai 2 GB di RAM -> swap = 1,5 x 2 = 3

PD: Ubuntu Desktop utilizza Swap to Hibernate (PC spento, senza alimentazione, stati del programma salvati). Se l'ibernazione è importante per te, avere più spazio di swap rispetto a ram + swap overflow.


2

Il freecomando può dirti quanto swap stai usando. Ad esempio su questa macchina:

$ free -m
             total       used       free     buffers     cached
Mem:          1947       1863         84         312        758
-/+ buffers/cache:        792       1154
Swap:         4000          3       3997

mi mostra che ho 2 GB (1947 m) di RAM e che il sistema ne ha utilizzato gran parte. Tuttavia, 312 m viene utilizzato per i buffer I / O e il resto (758 m) che il sistema ha deciso di riempire con la cache del disco.

La cache del disco è interessante perché utilizza la memoria veloce anziché il disco lento per i suoi contenuti. I contenuti potrebbero essere ottenuti dal disco, ma vengono conservati in caso di necessità. Questo significa anche che ci sono 758m di memoria che possono essere recuperati in un istante, se necessario, perché il sistema sa che può invece trovare quei dati sul disco.

Ecco perché c'è una seconda riga che mostra che se non ci fossero buffer e cache, avrei metà della mia RAM (1154m) disponibile per l'uso.

La terza riga mostra che ho una partizione di swap eccessivamente grande (era lì e non stava facendo nulla) di cui sono stati usati 3m enormi. Questa è roba che il kernel non si aspetta di dover usare presto, quindi è stato bloccato sul "portico posteriore".

Mentre freeti dà l'istantanea ora, vmstatpuoi darti un'immagine in esecuzione:

$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0   3588  86236 316524 769132    0    0    14    13  126   81  4  1 95  0
 0  0   3588  83872 316532 770512    0    0     0    20  264 1229  3  1 96  0

Ci sono molte informazioni lì, ma l'interesse è che non c'è traffico di swap-in (si) o swap-out (quindi). Ciò significa che non sto usando lo swap negli ultimi 10 secondi.


0
  • L'area di scambio è la parte dello spazio su disco rigido utilizzata per supportare memoria RAM con spazio limitato. La RAM ha dimensioni limitate, quindi alcune applicazioni richiedono più RAM dello spazio RAM disponibile, in tal caso questo spazio di swap chiamato anche memoria virtuale utilizzata per supportare la RAM.
  • È più lento nella velocità rispetto alla velocità della RAM. Quando eseguiamo un'applicazione di grandi dimensioni, la parte meno utilizzata di quell'applicazione viene scambiata in Area di scambio sul disco rigido, quando viene necessaria viene sostituita da Area di scambio. Questo dà al sistema operativo la sensazione di avere solo più RAM di quanto non sia in realtà.
  • È una partizione dedicata su disco rigido creata durante l'installazione del sistema operativo.
  • È utile se si crea un'area di scambio di dimensioni doppie rispetto alla RAM.
  • È possibile controllare l'area di scambio usata e disponibile usando il seguente comando:

    $ cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/sda10              partition   7812092  16      -1
    

0

Ho un laptop con un disco rigido lento, ma RAM relativamente alta (8 GB). In questa configurazione, ritengo che un'unità di scambio sia controproducente per i seguenti motivi:

  1. Il recupero delle applicazioni dallo swap è lento , paragonabile al caricamento dell'applicazione da zero. Preferirei avere un ambiente che risponda rapidamente, anche se ciò significa che a volte devo chiudere e ricaricare le applicazioni, piuttosto che un ambiente che a volte mi si blocca inaspettatamente.

  2. Se volessi la possibilità di ibernare, ciò significherebbe scrivere molti dati sul disco. Sarebbe un consumo costante della batteria se fosse fatto in modo persistente (il comportamento predefinito di swappiness 60), o se fosse fatto solo al momento del letargo (riducendo la swapiness), ci vorrebbe molto tempo prima di andare in letargo. Ho trovato che sospendere la RAM invece di sospendere su disco fosse abbastanza soddisfacente. Potrebbe rimanere sospeso per un paio di giorni e non sospenderebbe molto più rapidamente di un letargo completo.

  3. Poiché il disco rigido è lento, preferisco mantenere 1 GB di RAM riservato per la cache del disco , scambiando efficacemente la memoria per la velocità. Ciò mantiene la mia macchina scattante, ma significa che posso usare solo 7 GB dei miei 8 GB di RAM per le applicazioni. Il software che uso per raggiungere questo obiettivo è un fork di earlyoom che uccide le vecchie schede del browser quando è stato utilizzato l'88% della RAM. Occasionalmente devo ricaricare le vecchie schede del browser che sono state eliminate.

Quando questo consiglio non si applica?

  • Se si dispone di un disco rigido veloce o di un SSD e si hanno meno dubbi sul consumo della batteria, gli svantaggi che ho descritto sopra non saranno applicabili. (Anche se i primi SSD potrebbero avere problemi con l'usura, credo che qualsiasi SSD venduto dal 2018 dovrebbe andare bene.)

  • Se la tua macchina ha pochissima RAM , o ti piace usare più applicazioni affamate di memoria allo stesso tempo, allora potresti aver bisogno di usare lo swap per completare il tuo lavoro, indipendentemente dagli svantaggi. Questo era il caso d'uso principale per lo scambio, prima che la memoria iniziasse a diventare più economica.

  • Se hai davvero bisogno del letargo (forse vuoi sospendere il tuo laptop e riaprirlo dopo qualche giorno senza caricarlo) allora hai bisogno di un'unità di scambio (consigliata almeno quanto la tua RAM).

Avvertimento:

  • Alcuni dei software che lasciamo in esecuzione per molto tempo (in particolare il sistema operativo e l'ambiente desktop) caricheranno il codice in memoria che non verrà mai più utilizzato. Queste pagine potrebbero essere spostate per lo scambio e non dovranno mai più essere estratte, evitando così gli svantaggi che ho menzionato in precedenza. Per questo motivo, a volte creo un piccolo file di scambio da 512 MB o 1 GB e faccio in modo che le pagine di memoria inutilizzate vengano scambiate. Questo mi lascia solo un po 'più di RAM per le applicazioni. (Necessario: una tecnica per misurare la variazione di scambio, per aiutare a ottimizzare le dimensioni di questo file di scambio.)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.