Abbiamo ancora bisogno di partizioni di swap sui server?


37

Ho letto questa domanda , ma è stata posta nel contesto di server non desktop o notebook.

Se su un notebook è installata una buona quantità di RAM, diciamo 8 GB, abbiamo ancora bisogno di uno spazio di scambio?

Risposte:


33

C'è un malinteso comune sul fatto che avere uno spazio di scambio influisca negativamente sulle prestazioni del sistema. Questo non è corretto Finché hai abbastanza RAM, avere un'area di swap qualunque sia la sua dimensione non pregiudica affatto le prestazioni. Ciò che influenza le prestazioni è la mancanza di RAM e l'utilizzo efficace dello spazio di scambio.

  1. Se non hai spazio di swap e ti capita di rimanere fuori dalla RAM, il kernel sceglierà uno o più processi che ritiene siano buoni candidati (anche se potresti dargli qualche suggerimento ) e ucciderli.

  2. Se hai uno spazio di swap e non hai RAM, il kernel sceglierà le pagine di memoria meno utilizzate e le metterà nell'area di swap per liberare la RAM. Questo rallenterà il sistema ma le tue applicazioni non saranno interessate diversamente.

Preferisco sempre il caso 2. poiché mi sento a disagio a perdere parti o tutto il mio lavoro perché il kernel pensa che valga la pena uccidere le mie applicazioni. Inoltre, con la dimensione attuale di un disco medio compreso nell'intervallo TB, riservare un po 'di percentuale per lo scambio non è di solito un problema.


Il tuo primo punto è davvero vero? Il kernel ucciderà i processi in esecuzione per liberare la RAM? Perché il kernel non dovrebbe semplicemente usare lo spazio su disco invece di uccidere i processi live?
Donato,

4
@Donato Sì, il mio primo punto è vero. Se non è configurato alcuno spazio di swap (ovvero disco), al kernel non viene data la possibilità di utilizzare lo spazio su disco per liberare la RAM.
jlliagre,

e cosa succede quando finisco lo spazio di scambio? Fallback nel caso 1?
Zac,

@Zac Sì, a meno che tu non abbia realmente disabilitato il sovraccarico di memoria, nel qual caso il primo processo che non riuscirà ad allocare memoria sarà danneggiato. Nota che se hai un'area di spazio di swap (significativa) configurata e ne utilizzi la maggior parte, probabilmente avrai seri problemi di prestazioni in primo luogo.
jlliagre,

1
@Zac Se esaurisci lo spazio di swap, sei essenzialmente nella stessa situazione in cui non hai spazio di swap in primo luogo. Uno o più processi moriranno. Potrebbero essere scelti dall'omicida o semplicemente essere nel posto sbagliato e nel momento sbagliato. Normalmente, un sistema di produzione adeguatamente monitorato dovrebbe attivare un avviso e quindi una reazione dell'amministratore prima che si verifichi l'esaurimento dello scambio.
jlliagre,

9

Se hai una RAM di 3 GB o superiore, Ubuntu NON UTILIZZERÀ automaticamente lo spazio di Swap poiché è più che sufficiente per il sistema operativo.

Ora hai davvero bisogno di una partizione di swap?

La risposta secondo me è sì. Perché non sai cosa installerai o farai in futuro che potrebbe richiedere la necessità di spazio di swap. Inoltre, se stai pianificando di utilizzare l'ibernazione, potresti voler avere un po 'di spazio di scambio. In realtà non è necessario disporre di una partizione di swap, ma è consigliabile nel caso in cui si usi molta memoria durante il normale funzionamento.

Per ulteriori informazioni sulla necessità o meno dello swap, vedere Ubuntu Swap Faq o Requisiti di scambio


Hai un link che conferma la tua prima affermazione?
jlliagre,


1
La dichiarazione del blog sta citando erroneamente la risposta askunbutu. Non ci sono prove che user4124 sia uno sviluppatore di Ubuntu. "non avrà (in genere) un uso" è abbastanza diverso da "disabiliterà automaticamente". In realtà, Ubuntu non disabilita mai lo swap e lo utilizzerà se necessario, anche se si dispone di almeno 8 GB di RAM.
jlliagre,

@jlliagre Ciò significa che lo spazio di swap è presente, ma non utilizzato. Quando ho installato Xubuntu 14.04, ha creato uno scambio da 16 GB e non è mai stato ancora usato. vedi immagine
Mitch

1
Sono contento di aver corretto la tua risposta. "Non utilizzare" non è definitivamente lo stesso di "disabilita". Ubuntu non disabilita lo scambio e lo utilizzerà se mai necessario, indipendentemente dalle dimensioni.
jlliagre,

4

Negli ultimi 6 anni ho usato sistemi desktop con almeno 8 GB di RAM. Non ricordo un caso in cui il sistema ha scambiato la memoria durante il normale utilizzo e monitoro abbastanza spesso l'uso delle risorse con htop. Nemmeno nei casi in cui ho eseguito 4 macchine virtuali (server) contemporaneamente per scopi di sviluppo si è verificato lo scambio.

Detto questo, se le applicazioni in esecuzione richiedono molta memoria (ad es. Editing video, editing di immagini, manipolazione di tabelle di database di grandi dimensioni, ecc.) Potresti dover affrontare una situazione in cui il tuo sistema potrebbe esaurire la memoria. In tal caso potrebbe essere desiderabile disporre di uno spazio di scambio. Pensalo come una rete di sicurezza di ultima istanza. E considerando la capacità multi-terrabyte dei sistemi di oggi, quanto vale un paio di gigabyte in una partizione di swap? Meglio prevenire che curare :-)


2

Avere lo spazio di scambio è sempre una buona cosa.

Qui sto citando la Guida allo studio di certificazione RHCSA / RHCE di Michael Jang

Linux Swap Space

Tale spazio viene utilizzato per estendere la quantità di RAM effettiva su un sistema, come memoria virtuale per i programmi attualmente in esecuzione. Ma non puoi semplicemente acquistare RAM aggiuntiva ed eliminare lo spazio di swap. Linux sposta programmi e dati usati di rado per scambiare spazio anche se si dispone di gigabyte di RAM.

Per sistemi fino a 2 GB, la dimensione dello spazio di scambio predefinito è il doppio della quantità di RAM installata. Oltre 2 GB, è la quantità di RAM + 2 GB. Ma quelle non sono regole "dure e veloci". Le stazioni di lavoro con diversi GB di RAM utilizzano spesso pochissimo spazio di swap .. ma possono essere utilizzate più frequentemente su sistemi che non vengono riavviati per mesi alla volta o hanno una forte domanda da parte di determinati servizi.


1
"Linux sposta programmi e dati usati di rado per scambiare spazio anche se si dispone di gigabyte di RAM". Presumo che qui stiamo parlando di codice e dati caricati in memoria. Nel caso in cui tu abbia 8 GB di RAM e stai semplicemente eseguendo app normali, perché mai una pagina di codice o di dati dovrebbe essere pagata per scambiare?
Tarik,

1

Dipende da cosa stai eseguendo sul tuo sistema.

Se stai creando contenuti, è probabilmente una buona idea avere ancora spazio di swap allocato, quindi se esaurisci la RAM, i tuoi processi rallentano invece di essere uccisi e potenzialmente perdere lavoro.

Se la tua macchina esegue programmi, non hai bisogno o desideri spazio di scambio. Progetto e costruisco molti sistemi di visualizzazione simili a chioschi che si adattano esattamente a questo utilizzo. Preferirei che un processo muoia improvvisamente piuttosto che lento, perché poi posso rilevare quella condizione e correggerla.


1

Se hai mai bisogno di swap o di più spazio di swap, puoi creare file di swap sul tuo file system. Naturalmente, non supporteranno l'ibernazione, ma è un approccio ragionevole per un laptop con unità SSD e molta RAM.

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.