Puoi avere troppi swap?


16

Mi chiedevo solo se puoi avere una partizione di swap troppo grande. Se sì, quando una partizione di swap è troppo grande? Quali sono gli aspetti negativi / negativi di avere una partizione di swap troppo grande (anche se ho molto spazio su disco)?

In caso negativo, quali sono i vantaggi di avere più dello spazio di scambio consigliato?


5
L'aspetto negativo è che si spreca spazio su disco. OTOH: se hai "troppo" scambio (diciamo 30 GB su un sistema da 4 GB), le app che si comportano male avranno una memoria insufficiente molto più tardi e questo rallenterà il tuo sistema. Le app che si comportano in modo ordinato (senza perdite di memoria) semplicemente non la useranno. (Lo ammetto, questa è una visione semplificata.)
PerlDuck,

Sono d'accordo con @PerlDuck - "troppo scambio" utilizza solo lo spazio su disco. Il tuo sistema sarà lento se inizia a utilizzare lo scambio, in quel caso esegui meno app, app più leggere o ottieni più RAM
Panther

Lo so, quindi se hai abbastanza RAM, a parte usare troppo spazio su disco ci sono degli svantaggi? Tranne le app "maltrattate" offcourse come ha detto PerlDuck.
An

1
VTD Tutte le domande nella Modifica giustifica il cambiamento della ragione stretta da duplicato a off topic come troppo ampio. OP è ovviamente infastidito, ma meta o chat room sono un luogo di discussione migliore.
WinEunuuchs2Unix

3
Nel caso in cui le persone non siano sicure di cosa stiano parlando @PerlDuck (e Panther), nota che anche se avessi spazio su disco effettivamente illimitato, avere più spazio per scambiare renderà i processi che dovrebbero essere appena terminati e che altrimenti sarebbero rapidi terminato automaticamente, rallenta prima il sistema a scansione per lungo tempo . Il commento di PerlDuck, credo, funzionerebbe anche come risposta. Se finiamo per riaprire questa domanda, forse si può aggiungere una risposta sugli svantaggi di avere molto più swap del necessario. Perché ci sono degli svantaggi.
Eliah Kagan,

Risposte:


8

No

A prima vista non puoi avere troppi swap perché puoi vedere lo swap come un modo per aumentare la RAM. In realtà non aumenta RAM, finge solo di: Se hai 8 GB di RAM reale e uno spazio di scambio di, diciamo, 24 GB configurati, i tuoi programmi possono allocare e utilizzare fino a 8 + 24 = 32 GB di memoria che all'inizio suona bene.

Ma

Se esegui applicazioni che presentano perdite di memoria o non sono realmente progettate per l'esecuzione con 8 GB di memoria (ad esempio il montaggio video, queste applicazioni inizieranno a utilizzare tale spazio di swap e lo swap è lento. Più spazio di swap è attivamente utilizzato da queste applicazioni, più il sistema è occupato a spostare la memoria da e verso il disco. Ciò rallenterà drasticamente la reattività complessiva del sistema e porterà a una brutta esperienza per l'utente.

Alla fine - quando lo spazio di swap è esaurito - alcune applicazioni si troveranno ad affrontare una situazione di memoria insufficiente e verranno uccise dal OOM_Killer del kernel .

Dal wiki :

Il tipico caso OOM nei computer moderni si verifica quando il sistema operativo non è in grado di creare ulteriore memoria virtuale, poiché tutti i suoi potenziali dispositivi di backup sono stati riempiti.

Conclusione

Quindi, uno svantaggio di avere troppo spazio di swap è: più hai, più si verifica questa situazione OOM e più a lungo dovrai soffrire di un sistema in ritardo e non rispondente.

Un altro aspetto negativo evidente è ovviamente lo spreco di spazio su disco, ma al giorno d'oggi potrebbe non essere così importante.


+1 per la considerazione del caso limite. Personalmente, non sono un grande fan dello scambio poiché l'ibernazione è per gli orsi e i miei sistemi sono troppo occupati per questo. ;-) Saluti.
Elder Geek

@ElderGeek LOL. In realtà Eliah Kagan mi ha fatto trasformare il mio semplice commento in una risposta. Mi ha convinto che il rovescio della medaglia di avere troppi scambi è un aspetto cruciale e potrebbe essere importante per gli altri. Sono con te e ho un piccolo swap configurato (2 GB con 8 GB di RAM) e non viene quasi mai toccato.
PerlDuck,

Ho avuto risultati simili con impostazioni simili, vorrei che la voce di scambio 2x morisse finalmente.
Elder Geek,

5

Non vi è alcun inconveniente diretto sul grande spazio di swap. Con il modo in cui è gestito dal kernel, un aumento della quantità di spazio di swap al di sopra di ciò che è sufficiente non ha alcun impatto o ha un impatto trascurabile sulle prestazioni.

L'unico aspetto negativo di "troppo" spazio di swap è che non è possibile utilizzare tale spazio per l'archiviazione.


1
@ An0n: penso che sarebbe un grosso svantaggio allocare tutti i ~ 6 TB attualmente collegati alla mia macchina come spazio di swap. Dove metterei tutta la mia musica ...?
David Foerster,

2
@ An0n: a che serve un computer se tutto ciò che può fare è avviare e quindi non memorizzare alcun dato utile? Sembra più un costoso riscaldatore di spazio.
David Foerster,

1
@ An0n: certo, ho pensato tanto ma ti manca il punto. Penso che possiamo essere d'accordo sul fatto che per essere utile un computer deve essere in grado di raggiungere uno stato di sistema utilizzabile (inclusa la possibilità di avviare) e avere accesso all'archiviazione che l'utente può utilizzare per i suoi dati personali. Ciò richiede che non sia occupato dallo spazio di swap.
David Foerster,

2
Certo che è relativo. Proprio come "troppo" è relativo. Se ho un sistema avviabile e alloco tutto il mio spazio libero come spazio di scambio, non mi sarà più utile a causa della mancanza di spazio libero fino a quando non modifico la sua configurazione di sistema in un modo che termina in più spazio libero. In tal senso, lo spazio di swap sarebbe "troppo" durante quel periodo, rendendo il sistema inutile durante quel periodo. Comunque, non sono qui per discutere con te della semantica delle parole.
David Foerster,

1
@ An0n Per sottolineare il punto qui, lo spazio di scambio è lo spazio che non puoi usare per nient'altro. Lo spazio di archiviazione su disco costa denaro. Se lo spazio su disco è limitato (il mio è solo 32 GB), vuoi mantenerlo il più libero possibile per installare programmi e scrivere file con i tuoi contenuti, come la musica. Le persone generalmente cercano di mantenere lo swap al minimo per quel motivo e nessun altro motivo. Lo scambio è qualcosa di cui il sistema potrebbe aver bisogno per continuare a funzionare in modo efficiente, altrimenti non ha alcun valore per l'utente. In generale, vogliamo che il nostro sistema utilizzi solo le risorse necessarie e ci lasci molto con cui giocare.
Zanna,

4

Non sentirai altri aspetti negativi oltre a meno spazio sul tuo disco, penso che al giorno d'oggi la concezione di 2x la quantità di RAM è obsoleta nella maggior parte dei sistemi. Di solito consiglio di usare le stesse dimensioni del tuo ram per la memoria di scambio nei laptop, per darti l'opportunità di ibernare il tuo PC senza perdere alcun dato a causa della natura volatile della RAM.

Gli unici casi in cui prenderei in considerazione l'utilizzo di oltre 1 volta la dimensione della RAM per la partizione di swap è quando pensi di aggiornare la dimensione della RAM in breve tempo. O se si prevede di utilizzare un sistema in cui è possibile memorizzare in una sorta di cache la quantità di memoria utilizzata da programmi non utilizzati nello stesso momento.

Spero che il mio punto sia stato abbastanza chiaro, e ripeto, non penso che si verificheranno problemi per avere troppa memoria di swap.

Buona giornata!


2
Non uso affatto lo swap se RAM> 2-4 Gb su un desktop per utente singolo.
Pantera

1
@Panther Perché no? E non si tratta di come o quando lo usi. Riguarda le dimensioni e l'uso.
An0n


@ElderGeek Ciao, no, non l'ho considerato. Mi piace la tua risposta, non sapevo del problema delle perdite di memoria!
zurg,

2

Di quanto SWAP ha davvero bisogno l'ibernazione?

È un'idea sbagliata che hai bisogno di RAM x 2 per la dimensione SWAP quando usi l'ibernazione. La dimensione dello swap deve essere la dimensione della RAM utilizzata non RAM installata . Generalmente le dimensioni dello swap devono essere 2/5 della RAM installata. Per scoprire la quantità minima di RAM necessaria per l'uso:

$ cat /sys/power/image_size
3153907712

Su questa macchina da 8 GB RAM sono necessari almeno 3 GB per il letargo.

È possibile modificare i valori image_sizeper una dimensione di scambio inferiore con rischio di fallimento. È possibile modificarlo per una dimensione di scambio più grande e possibilmente accelerare la velocità di ibernazione.

Riferimento: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


16 MB di RAM nel 1995, regole diverse per 16 GB di RAM nel 2018

Nei giorni in cui avevi 16 MB di RAM, x 2 per 32 MB di scambio sul tuo disco rigido da 720 MB avevano senso. Un po 'di storia di RAM e HDD in questo articolo del Washington Post del 1995 .

23 anni dopo alcuni articoli tecnici di quel 1995 (anche se non ne ho trovati) potrebbero essere trovati a fuorviare i nuovi utenti. Tuttavia, ho trovato un articolo del 2007 che raccomandava SWAP = RAM x 2 .

Nel 1995, 32 MB di swap su 760 MB di HDD erano il 4% di HDD. In effetti, la partizione di swap potrebbe essere stata utilizzata molto nel 1995. Oggi nel 2018, 16 GB RAM x 2 per 32 GB SWAP sul tuo SSD da 256 GB non ha lo stesso senso in quanto occupa il 13% di SSD. Oggi la mia partizione SWAP da 8 GB non viene utilizzata affatto a meno che non la costringa a riempirla durante il test di OOM-Killer: Google Chrome occuperà la mia memoria al punto in cui provoca il blocco del computer. Cosa posso fare per impedirlo? .


+1 per indicare l'idea sbagliata della regola 2x spesso propagandata che è la cuccetta totale.
Elder Geek

@ElderGeek Grazie. Ho aggiunto una sezione di cronologia su quando 16 MB di RAM 2 volte per 32 MB di SWAP potrebbero aver avuto senso.
WinEunuuchs2Unix

Un'altra cosa da considerare è SSD contro HDD. Vogliamo un sacco di letture / scritture su SSD che portano più rapidamente al fallimento in quella parte dell'SSD (o è un mito)? Sul mio sistema da 32 GB di RAM ho usato 2 GB di velociraptor Drive per SWAP ma senza intenzione di ibernazione, non sono ancora sicuro che vada bene, forse non avrei potuto avere swap ??? Ma se andassi in letargo forse 4 GB sarebbero sufficienti, ma è probabile che userei 20 GB di browser e quindi 4 GB non sarebbero sufficienti ???
NZ Dev

@NZDev Ho il mio swap su SSD ma è usato raramente. L'ultima volta che ho controllato era rimasta ancora la vita al 100% dopo 1 anno di utilizzo. Per vedere la percentuale di vita rimasta: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix

1

Che cos'è SWAP:

Lo spazio di swap in Linux viene utilizzato quando la quantità di memoria fisica (RAM) è piena. Se il sistema richiede più risorse di memoria e la RAM è piena, le pagine inattive in memoria vengono spostate nello spazio di scambio. Mentre lo spazio di scambio può aiutare le macchine con una piccola quantità di RAM, non dovrebbe essere considerato un sostituto per più RAM. Lo spazio di swap si trova su hard disk, che hanno un tempo di accesso più lento rispetto alla memoria fisica.

Lo spazio di swap può essere una partizione di swap dedicata (consigliata), un file di swap o una combinazione di partizioni di swap e file di swap.

Lo scambio dovrebbe essere pari a 2x RAM fisica.


vantaggi:

Fornisce spazio di overflow quando la memoria si riempie completamente Può spostare gli oggetti raramente necessari lontano dalla memoria ad alta velocità Consente di ibernare

svantaggi:

Occupa spazio sul disco rigido poiché le partizioni SWAP non si ridimensionano in modo dinamico Può aumentare l'usura del disco rigido Non migliora necessariamente le prestazioni (vedere di seguito)


Quando le partizioni SWAP "Non aiutano" come in "non degno rispetto allo spazio di archiviazione aggiuntivo":

Se il tuo hard disk ha solo 5400 RPM e hai poca RAM, diciamo> 2 GB. Perché ? Poiché il sistema voleva costantemente accedere alla partizione SWAP, alla fine diventerà molto lento. Anche se ora hai spazio in memoria, tutto nella partizione SWAP deve essere spostato indietro. Poiché il sistema procederà lentamente, l'assegnazione rimane nella partizione SWAP. Questo può essere risolto solo con un riavvio. Il che richiederà comunque del tempo perché il sistema deve rimuovere tutto dalla partizione SWAP prima di spegnersi.


** Conclussione: **

Se si desidera poter ibernare il computer, è necessario disporre di una partizione SWAP. La dimensione di questa partizione dovrebbe essere la dimensione della memoria installata, oltre a un ulteriore 10-25% per lasciare spazio a tutti gli elementi che erano già stati spostati nella partizione SWAP.

Se vuoi solo un piccolo aumento delle prestazioni (e hai almeno un disco rigido a 7200rpm), puoi aggiungere una partizione SWAP se lo desideri, ma non è necessario a meno che tu non abbia meno di 4 GB di memoria installata. La dimensione di questo può essere qualsiasi cosa tu voglia. Tuttavia consiglio vivamente di raddoppiare la RAM. SE hai uno spazio di archiviazione sufficiente.

Se si dispone di un disco rigido da 5400 rpm, non è necessario creare una partizione SWAP semplicemente perché il collo di bottiglia peggiorerà il computer. Tuttavia, se vuoi assolutamente avere SWAP, puoi comunque creare una partizione usando le stesse linee guida di dimensionamento descritte sopra - ma cambia il valore di swapiness in qualcosa di molto più basso.



La mia opinione:

Tuttavia, in ogni caso, se usi Ubuntu come sistema operativo principale per l'uso quotidiano, ti consiglio di raddoppiare le dimensioni della RAM. Perché non installi Ubuntu solo perché hai un vecchio computer. Ma perché vuoi usare il sistema come sistema operativo principale.

Piuttosto acquista dell'hardware aggiuntivo se necessario invece di regolare le partizioni di sistema per mantenerlo in esecuzione. Se acquisti un gioco assicurati anche che il tuo sistema sia "aggiornato" invece di regolare le impostazioni per renderlo "giocabile".

Puoi meglio avere un po 'di spazio extra, SWAP, velocità, potenza invece di avere troppo corto o dover ridimensionare tutto in seguito. Perché hai bisogno di SWAP o spazio, hai acquistato RAM? O è necessario acquistare la ram velocemente perché si è rotto uno slot di memoria o uno stick.


Ri: la tua conclusione Semplicemente non ha senso, o un altro modo per dirlo è dove tracciamo la linea. ad es. RAM da 8 GB più 16 GB di scambio: cosa succede se uso 8 GB di RAM e 9 GB di scambio, quindi non c'è ancora spazio sufficiente per andare in letargo. Quindi cosa dà? In altre parole, indipendentemente dalle dimensioni, puoi comunque usarlo sempre di più. Quindi perché il file Swap non ha 2 spazi dedicati 1 come memoria virtuale e l'altro come spazio di ibernazione che sarebbe la somma o l'altro 2. Non si accumula per me e nessuno ha mai risposto a questa domanda.
NZ Dev

0

C'è un sovraccarico, davvero, ma è molto piccolo; per ogni "pagina" su disco c'è un contatore di riferimento e ci sono un paio di strutture associate ad ogni area di scambio; questo è nella memoria del kernel, quindi non può essere impaginato. È compreso tra 2 e 16 MB ogni 4 GB, a seconda dell'architettura. Il resto è abbastanza dinamico, quindi dipendente dall'uso.

Quindi puoi avere un sacco, ma tieni presente che lo spazio degli indirizzi di paging stesso impone un certo sovraccarico sulla RAM, e per di più c'è un tracciamento in corso per le pagine scambiate, quindi non si ridimensiona molto; anche se imponendo un certo sovraccarico, i filesystem sono molto più efficienti delle aree di scambio quando si tratta di gestire aree più grandi poiché i vfs possono scaricare informazioni strutturali sul disco (normalmente almeno le tabelle di pagina non possono essere scambiate, a causa delle limitazioni hardware, e il vmm sta probabilmente usando una memoria non scambiabile per tutta la sua contabilità).

Non riesco a pensare a nessun altro aspetto negativo, OTOH che ha uno scambio troppo piccolo può causare frammentazione durante lo scambio di pagine, il che significa più ricerca. Quando si ha molto, dopo un certo punto non ci saranno miglioramenti.

Lo scambio è in genere un'ultima risorsa (ibernazione a parte), quindi probabilmente non trarrai beneficio da avere più spazio di scambio rispetto alla RAM, specialmente se hai oltre 4 GB di RAM, e talvolta anche grande quanto la RAM è troppo (pensa 64 GB) .


Siamo spiacenti, la tua ultima frase / frase è confusa, altrimenti un buon componente aggiuntivo di cui sopra.
NZ Dev

@NZDev è meglio adesso?
Ismael Luceno,
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.