Ho letto molti posti in cui la regola empirica per lo spazio di swap è quella di raddoppiare la quantità di RAM fisica. Tuttavia, 32 GB sembrano MOLTO. Ho bisogno di così tanto? Ne ho davvero bisogno con questa elevata quantità di RAM fisica?
Ho letto molti posti in cui la regola empirica per lo spazio di swap è quella di raddoppiare la quantità di RAM fisica. Tuttavia, 32 GB sembrano MOLTO. Ho bisogno di così tanto? Ne ho davvero bisogno con questa elevata quantità di RAM fisica?
Risposte:
Dipende interamente da cosa pensi di fare con la macchina. Ad esempio, se fosse un server Sap, allora sì, aggiungerei 32 gb di scambio (abbiamo scatole funzionanti con 128 g di RAM e 32 g di swap). Se stai manipolando immagini e video di grandi dimensioni, ha senso scambiare un po '. 32 GB è probabilmente eccessivo.
Tuttavia non direi zero swap.
Nel caso improbabile che tu abbia esaurito la RAM - forse aprendo un file di grandi dimensioni, eseguendo una scheda di lunga durata in Firefox, non importa, in quel caso il tuo killer OOM del kernel si avvierà e inizierà a uccidere le applicazioni per recuperare la memoria. In tali circostanze è del tutto possibile che tu perda i dati man mano che le applicazioni vengono uccise. Tuttavia, se si dispone di un po 'di scambio, il sistema proseguirà, afferrando lo scambio e consentendo al sistema di continuare. Il sistema rallenta quando si verifica uno scambio pesante, notate e indagate prima che tutto lo swap sia esaurito. Anche il disco è molto economico, quindi perché non avere lo swap?
Chiunque dica "non è necessario scambiare" senza chiederti cosa stai effettivamente facendo con il tuo computer sta facendo ipotesi. Anche se potresti fare ben poco con il tuo computer che consuma RAM, è comunque meglio porre le domande su cosa stai pianificando di fare con esso prima di dare il rash giudizio che non hai "bisogno" di scambio. A mio modesto parere
Ecco una buona raccomandazione di RedHat: spazio di scambio di sistema consigliato
Un estratto dallo stesso link:
Negli anni passati, la quantità raccomandata di spazio di swap è aumentata in modo lineare con la quantità di RAM nel sistema. Ma poiché la quantità di memoria nei sistemi moderni è cresciuta in centinaia di gigabyte, ora è riconosciuto che la quantità di spazio di swap di cui un sistema ha bisogno è una funzione del carico di lavoro della memoria in esecuzione su quel sistema. Tuttavia, dato che lo spazio di scambio è generalmente designato al momento dell'installazione e che può essere difficile determinare in anticipo il carico di lavoro della memoria di un sistema , si consiglia di determinare lo scambio di sistema utilizzando la tabella seguente.
Tabella attuale (a dicembre 2017):
Amount of RAM in the system Recommended swap space Recommended swap space
if allowing for hibernation
--------------------------- ---------------------------- ---------------------------
2GB of RAM or less 2 times the amount of RAM 3 times the amount of RAM
2GB to 8GB of RAM Equal to the amount of RAM 2 times the amount of RAM
8GB to 64GB of RAM At least 4 GB 1.5 times the amount of RAM
64GB of RAM or more At least 4 GB Hibernation not recommended
Tavolo originale:
Amount of RAM in the System Recommended Amount of Swap Space
4GB of RAM or less a minimum of 2GB of swap space
4GB to 16GB of RAM a minimum of 4GB of swap space
16GB to 64GB of RAM a minimum of 8GB of swap space
64GB to 256GB of RAM a minimum of 16GB of swap space
256GB to 512GB of RAM a minimum of 32GB of swap space
Argh. Le risposte a questo post sono molto sbagliate e questo si presenta come uno dei primi risultati di una ricerca su Google "Quanto si scambia?"
Innanzitutto, un buon punto di riferimento sono le Domande frequenti su Ubuntu Swap
Questa FAQ fa notare che nessuno qui menziona, e cioè (enfatizzare il mio)
A volte, un programma di grandi dimensioni (come OpenOffice, Neverwinter Nights o un editor video) rende l'intero sistema necessario memoria aggiuntiva. Un numero significativo delle pagine utilizzate da questi programmi di grandi dimensioni durante il suo avvio può essere utilizzato solo per l'inizializzazione e quindi non essere più utilizzato. Il sistema può scambiare quelle pagine e liberare la memoria per altri programmi o anche per la cache del disco . In questi casi, lo swap verrà utilizzato per aiutare il sistema a gestire qualsiasi carico aggiuntivo.
Quindi, lo scambio non è solo per l'ibernazione! Questa attività, scambiando pagine inutilizzate, può essere utile in alcuni scenari e dannosa in altri. È utile perché può liberare memoria per il sistema da utilizzare altrove, ma è dannoso quando lo scambio è troppo aggressivo e sostituisce le pagine che effettivamente si desidera. Ciò è particolarmente vero su un sistema desktop in cui le applicazioni possono rimanere inattive per lunghi periodi di tempo, ma l'utente si aspetta comunque prestazioni immediate quando lo ripristinano. Il controllo di quanto sia aggressivo è definito swappiness
Le Domande frequenti su Ubuntu Swap ne discutono leggermente in Che cos'è la swappiness e come posso cambiarla? Il valore predefinito su un sistema Ubuntu è 60, mentre le FAQ raccomandano un valore di 10 per un computer desktop.
Quindi, direi che è generalmente molto importante non avere un sistema senza assolutamente spazio di swap, come alcune persone stavano raccomandando su questa domanda, a meno che tu non conosca determinati scenari di utilizzo molto specifici per il tuo sistema e sei molto consapevole delle conseguenze potrebbe avere. (Personalmente, non esiste una situazione in cui eseguo un sistema senza scambio) In uno scenario di Memoria esaurita senza scambio, il sistema inizierà a uccidere i processi (generalmente quello che ha causato la OOM)
Probabilmente no. Se prevedi di ibernare il tuo computer (sospensione su disco), avrai bisogno di almeno 16 GB. Se non si va in letargo, è sufficiente lasciare alcuni gigabyte per lo scambio (4-8 max.)
Per esperienza posso dire questo:
Per quello che ho visto usando 4 GB di RAM per 3 anni, Ubuntu ha avuto un utilizzo di swap di circa 60 MB, ma solo quando ha svolto attività molto intense. Un paio di settimane fa ho iniziato a utilizzare un PC con 16 GB di RAM e l'utilizzo di swap è rimasto per sempre nello 0%. Ho fatto più compilazioni, rendering video e altre attività intensive. Non c'è mai stato un cambio di swap. Neanche una modifica da 1 KB.
Fondamentalmente, in Ubuntu, più memoria RAM hai, meno probabilità avrai di utilizzare o avrai bisogno di scambiare qualsiasi attività. 16 GB di RAM, o anche 8 GB di RAM sono più che sufficienti. Ho fatto con i PC Virtualbox da 8 GB PC 8 (ciascuno da 1 GB a 2 GB di RAM). Ho compilato e reso un video a 720p e nemmeno in quelle condizioni lo scambio è cambiato.
Detto questo, la regola del doppio della memoria RAM non dovrebbe applicarsi ai sistemi basati su Linux, tanto più se si dispone di più memoria. Dovresti comunque avere la stessa dimensione di scambio uguale alla dimensione del tuo ariete o se stai pensando di andare in letargo, poiché il processo di letargo prende tutto in ariete e lo mette in scambio, motivo per cui hai bisogno di una dimensione minima uguale alla tua dimensione di ariete per lo scambio.
L'altro dettaglio è che alcune app (non tutte) continueranno a forzare a leggere dallo swap. Quindi avere un po 'va bene. Disabilitarlo del tutto è molto male nel caso in cui si esaurisca la memoria o OOM. A questo punto, se non si dispone di swap, non è possibile che il kernel possa scambiare / estrarre diversi utilizzi di app ram e alla fine inizierà a uccidere quelli meno utilizzati.
Se aiuta con il processo decisionale sul desktop domestico, dopo aver aggiornato questa risposta in più di 4 anni, ho usato un PC ram da 16 GB, 32 GB e ora 64 GB. I test con solo 128 MB di swap hanno rivelato che non avevo bisogno di swap più grandi, tranne se volevo andare in letargo. Ho usato ambienti cloud su di essi, lxc, virtualbox, wine, lo chiami. Ho reso video con openshot, kazam, freno a mano, audacia. Ho usato gimp, blender, Inkscape e persino l'intera suite LibreOffice. Ho anche giocato a vapore e in nessuno di questi scenari è stato utilizzato lo swap. Ovviamente, alla fine verrà utilizzato se finisci per utilizzare l'intero importo della ram in un modo o nell'altro, ma in generale più RAM hai, meno swap ti servirà.
Solo i miei 2 centesimi.
No, non sono necessari 32 GB finché non si utilizzano funzionalità come la sospensione su disco.
Nella maggior parte dei casi, direi che non ne hai bisogno. Forse se modifichi file di immagini molto grandi o qualche altra app che ha bisogno di molti ram, potresti averne bisogno.
Non ne ho mai visto nessuno usato sul mio sistema, simile al tuo. In effetti, una volta l'ho disabilitato per una settimana o due per caso e non ho mai notato alcun problema. Conservo comunque circa 5 GB per l'unità di scambio, principalmente perché ho a disposizione oltre 1 TB e non uso tutto lo spazio così com'è.
Se il tuo ram è superiore a 1 GB, di solito è sufficiente per Ubuntu. La regola "Swap = RAM x2" è per vecchi computer con 256 o 128 MB di RAM.
Quindi 1 GB di swap è in genere sufficiente per 4 GB di RAM. 8 GB sarebbero troppi.
Se si utilizza l'ibernazione, è sicuro avere tanto scambio quanto la quantità di RAM.
Per una regola generale su quanto swap avere, leggi qui:
https://help.ubuntu.com/community/SwapFaq
Nel tuo caso direi che 4 GB sarebbero sufficienti per abbinare la tua RAM.
Hai solo bisogno di scambiare se vuoi usare l'ibernazione per il resto è uno spreco di spazio sul tuo hard disk.
sudo swapoff -a
poi dormendo il tuo laptop.
Ho un laptop con 4 GB di RAM e Ubuntu 16.04. Dopo l'avvio, consuma circa 1 GB di RAM e anche Inkscape (ad esempio) non funziona (il monitor di sistema mostra oltre il 50% di RAM libera). Inkscape si blocca Dopo aver applicato un file di scambio, viene eseguito come previsto, anche senza l'utilizzo di un solo byte di scambio). Quindi raccomando una partizione di swap (o file di swap). Circa le sue dimensioni, puoi usare la regola david6.
Da Ubuntu SwapFaq :
Programmi che consumano memoria A volte, un programma di grandi dimensioni (come LibreOffice, Neverwinter Nights o un editor video) rende l'intero sistema necessario memoria aggiuntiva. Un numero significativo delle pagine utilizzate da questi programmi di grandi dimensioni durante il suo avvio può essere utilizzato solo per l'inizializzazione e quindi non essere più utilizzato. Il sistema può scambiare quelle pagine e liberare la memoria per altri programmi o anche per la cache del disco. In questi casi, lo swap verrà utilizzato per aiutare il sistema a gestire qualsiasi carico aggiuntivo.
Ibernazione (sospensione su disco) La funzione di sospensione (sospensione su disco) scrive il contenuto della RAM nella partizione di scambio prima di spegnere la macchina. Pertanto, la partizione di swap dovrebbe essere grande almeno quanto la dimensione della RAM. L'implementazione dell'ibernazione attualmente utilizzata in Ubuntu, swsusp, necessita di una partizione di swap o sospensione. Non può utilizzare un file di scambio su un file system attivo.
Circostanze imprevedibili Gli eventi imprevedibili possono e accadranno (un programma impazzisce, alcune azioni richiedono molto più spazio di quanto si pensi, o qualsiasi altra combinazione imprevedibile di eventi). In questi casi, lo scambio può darti un ritardo extra per capire cosa è successo o per finire su cosa stai lavorando.
Ottimizzazione dell'utilizzo della memoria Poiché i dischi rigidi meccanici sono notevolmente più lenti della RAM (SSD - Solid State Drive - l'archiviazione non è lenta come le unità fisiche, ma è ancora più lenta della RAM), quando è necessario un file (sia esso un file di dati come un video, eseguibili come Firefox o librerie), il kernel di Linux legge il file nella RAM e lo mantiene lì, quindi la prossima volta che ne hai bisogno, è già nella RAM e l'accesso ai dati è molto più veloce. Le porzioni di RAM che accelerano la lettura del disco sono chiamate "memoria cache". Noterai che fanno un'enorme differenza in termini di reattività. Il kernel di Linux sposta automaticamente la RAM riservata dai programmi - ma non realmente utilizzata - in scambio, in modo che possa servire allo scopo migliore di estendere la memoria cache.
Ottimizzazione delle prestazioni di swap Poiché lo spazio di swap utilizza un dispositivo a disco, ciò può causare problemi di prestazioni in qualsiasi sistema che utilizza lo spazio di swap in modo significativo poiché il sistema stesso potrebbe utilizzare lo stesso dispositivo a disco nello stesso momento in cui è necessario per le operazioni di swap. Un modo per ridurre questo problema è avere lo spazio di swap su una diversa unità fisica in modo da ridurre o eliminare la concorrenza per quella risorsa.
Per meno di 1 GB di memoria fisica (RAM), si consiglia vivamente che lo spazio di scambio sia, come minimo di base, uguale alla quantità di RAM. Inoltre, si consiglia che lo spazio di swap sia massimo il doppio della quantità di RAM a seconda della quantità di spazio su disco disponibile per il sistema a causa di rendimenti decrescenti.
Per i sistemi più moderni (> 1 GB), lo spazio di swap dovrebbe essere almeno uguale alla dimensione della memoria fisica (RAM) "se si utilizza l'ibernazione", altrimenti è necessario un minimo di round (sqrt (RAM)) e un massimo del doppio della quantità di RAM. L'unico aspetto negativo di avere più spazio di swap di quello che userete effettivamente è lo spazio su disco che vi riserverete.
I "rendimenti decrescenti" significano che se hai bisogno di più spazio di swap rispetto al doppio della dimensione della RAM, è meglio aggiungere più RAM poiché l'accesso all'unità disco rigido (HDD) è circa 10³ più lento dell'accesso alla RAM, quindi qualcosa che richiederebbe 1 secondo, all'improvviso ci vogliono più di 15 minuti! E ancora più di un minuto su un Solid State Drive (SSD) veloce ...
Scenari di esempio
RAM(GB) No hibernation With Hibernation Maximum 1 1 2 2 2 1 3 4 3 2 5 6 4 2 6 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 64 8 72 128 128 11 139 256
Penso che tu l'abbia capovolto. Raccomandazione SWAP , avresti bisogno di ~ 16 GB. Quindi SWAP dovrebbe essere 1/2 della dimensione RAM effettiva. Ma è ancora MOLTO spazio. Dipende da cosa ti serve. Direi che se non usi "ibernazione", tieni circa ~ 4 GB a ~ 8 GB se puoi permetterti lo spazio su disco. Dato che hai 16 GB, presumo che tu stia utilizzando un computer che necessita di risorse potenti ... quindi forse potrebbe essere utile avere anche SWAP da 16 GB a 32 GB.
Ho 2 GB di RAM e 1 GB di SWAP. Faccio abbastanza bene, ma questa è solo la mia opinione. Guarda gli altri commenti / suggerimenti e vedi cosa dicono.
Non sono riuscito a trovare riferimenti da citare qui, ma se si intende utilizzare un'applicazione in cui è necessario scambiare interi dati nella RAM, occorrerebbe almeno "Dimensione RAM + 128 MB" o "1,25 volte di Dimensione RAM" (i dimenticato quale era corretto) supponendo che tu abbia RAM più di 2 GB. Se la RAM è pari o inferiore a 2 GB, si consiglia di avere una dimensione RAM doppia rispetto allo swap. Ho seguito questa raccomandazione nella mia precedente organizzazione per IBM AIX sulla base di un documento di IBM. Ritengo che ciò valga per la maggior parte di * nix poiché l'uso di swap consente di spostare i dati dalla RAM in modo sicuro nel caso in cui la RAM non sia sufficiente per gestire i dati da caricare in memoria. Il comando 'free' può essere utilizzato per valutare la quantità di swap utilizzata nella realtà.
Ho un laptop Mac, che lascio acceso per mesi. Anche se molto meglio di Windows, la memoria si insinua, in particolare con il browser, se continui. Quindi, alla fine, la memoria si riempie. Ora, se hai uno scambio, come hanno notato altre persone, puoi sopravvivere, notare e uccidere qualcosa. Ma più precisamente, se hai uno scambio, alcune pagine vengono scambiate e puoi continuare.
Quindi, se hai intenzione di lasciare la macchina per molto tempo, lo scambio è un modo pratico per liberare memoria dalla spazzatura di zombi. Concesso, ci vorrà più tempo per riempire 16 g di me con 3 gb, ma è comunque bello. A tale scopo, 4 GB lo farà.
Tienilo a mente -
In genere, è necessario ridimensionare lo spazio di swap su circa 2 volte la memoria principale per i sistemi con meno di 2 GB di RAM o circa 1 volta la memoria principale se si dispone di più
Quindi, se hai 4 GB di RAM, non dovresti mai aver bisogno di uno scambio a meno che lo scambio in letargo
richiesto non sia di circa 3 - 3,5 GB, non più di questo .
Quindi usa il tuo buon senso e non sprecare spazio su disco
Se stai costruendo file di dimensioni molto grandi, ad esempio se stai costruendo sistemi di traduzione automatica su un laptop (sì ok, perché vorresti farlo? Io per primo posso dire che i miei professori mi stanno facendo ;-)) la risposta è un chiaro sì, attualmente in questo momento mi pento di non aver fatto lo scambio da 32 GB ....
Per un uso occasionale di Ubuntu per lavoro d'ufficio e Internet, non avrai mai intenzione di usare nemmeno 2 GB di swap ma in realtà non esiste una risposta chiara, tutto dipende da cosa farai sul tuo computer ...
Troppe informazioni e varianza nell'opinione.
amount of RAM recommended swap with hibernation
---------------- ---------------- ----------------
less than 4GB 2x RAM size 3x RAM size
up to 8GB 4GB 2x RAM size
up to 16GB 4GB 1.5x RAM size
16GB or more 4GB No extra needed
Nessuno sembra aver menzionato un altro motivo per avere uno spazio di scambio significativo è che il sistema rallenta sensibilmente piuttosto che non eseguire programmi quando si esaurisce la memoria. Se hai un bilanciamento del carico di fronte che reindirizza in caso di errore, potresti voler mantenere piccolo lo swap (diciamo 1 GB), Se vuoi che i programmi rallentino prima, allora prenderei in considerazione 4 GB + radice quadrata della dimensione della memoria e se li vuoi rallentare davvero prima che le cose muoiano, quindi mantenere un minimo di 1,25 volte la dimensione della memoria (purché gli umani impazienti non si arrendano per primi - questo sarebbe più appropriato per i lavori in background).
Configuro 1 GB di serie per le mie macchine di sviluppo e produzione, quindi non importa quanta o poca memoria reale hanno, hanno abbastanza per compilare tutti i programmi che desidero e scambiare programmi praticamente mai usati per usare il memoria liberata per il buffering del disco.
In confronto, ho 64 GB di swap sul mio laptop da 32 GB, il che è un po 'eccessivo, ma volevo assicurarmi che continuasse a funzionare anche se lentamente, e sapevo che avrei eseguito più macchine virtuali affamate di memoria. Un effetto inaspettato è quando si dispone di un intervallo di memoria di 32 GB +, quindi riprendere dal letargo (che ricarica 32 GB di memoria) è notevolmente più lento di un avvio a freddo.
No, sicuramente non hai bisogno di 32 GB. Di norma per un sistema desktop direi che lo swap dovrebbe essere compreso tra 4 GB e RAM fisica + un paio di GB . Quindi, per la RAM fisica da 16 GB, lo scambio può essere da 4 GB a 18 GB, forse.
Le cose che dovrai scambiare con lo spazio di swap saranno all'incirca uguali alla quantità di RAM fisica in uso dalle applicazioni che rimangono residenti, vale a dire i servizi di sistema e le applicazioni che rimangono in esecuzione mentre le stai usando (al contrario delle attività che vengono eseguite una volta quindi esci). Su un sistema desktop diciamo che puoi lasciare aperto un browser, un elaboratore di testi, un programma di posta elettronica e un editor di grafica o video mentre lavori su qualcos'altro. Quelli possono occupare facilmente oltre 2 GB, forse oltre 4 GB. Quindi forse 6 GB di swap sono appropriati.
Come regola generale, non è male avere anche qualche GB in più del necessario. Lo scambio di solito non verrà utilizzato se si dispone di molta RAM, ma aiuta quando un processo utilizza una quantità eccessiva e si inizia a diventare basso e può impedire ai processi di uccidere il sistema.
Nota: se si desidera utilizzare l'ibernazione del sistema operativo, saranno necessari tutti i 16 GB, come indicato, ma i computer moderni non beneficiano molto dell'ibernazione. Se si dispone di un SSD veloce, l'avvio può essere altrettanto rapido o più rapido rispetto alla ripresa dall'ibernazione e i computer moderni utilizzano energia trascurabile mentre in modalità di sospensione il consumo di energia dall'ibernazione non è un fattore determinante.