Svantaggi di non avere una partizione di swap


8

Di recente ho installato Ubuntu 10.04 sul mio laptop. A causa del vincolo di spazio dell'SSD, non ho impostato una partizione di swap per il sistema operativo e ho 1,5 GB di RAM.

C'è un avvertimento durante l'installazione, ma penso che non sia un grosso problema poiché tutto è andato per il meglio.

A lungo termine, ci sarebbero degli svantaggi nel non avere una partizione di swap?


2
Gparted sarà felice di ritagliare un paio di concerti del tuo root drive e di farlo con facilità e aplomb.
msw,

Risposte:


6

Penso che se devo scriverti una risposta alla domanda, devo prima spiegare un po 'l'intera faccenda del file di scambio qui. Scusami per la mia mancanza di respiro.

Un file di scambio / partizione di scambio, simile al file di paging in Windows, è lo spazio su disco rigido dedicato per facilitare un migliore utilizzo della memoria. Esistono due usi dello spazio di swap.

  1. Quando non c'è abbastanza memoria per tutte le applicazioni - nel caso in cui ciò accada a un sistema senza spazio di swap, si verificherà un errore nell'allocazione della memoria per una nuova applicazione che richiede nuove pagine di memoria - e questo di solito porta alla chiusura del programma.

  2. Quando alcune pagine di memoria (la memoria è divisa in "pagine") viene utilizzata qualche tempo fa, ma non viene più utilizzata ora, verrebbe trasferita sul file di scambio e la memoria rimanente può essere utilizzata per fare qualcos'altro che potrebbe essere più utile ( ad esempio, anche la memorizzazione nella cache!) - quando ciò accade in un sistema senza spazio di swap, le pagine inattive rimarranno nella memoria. Questo non è nulla di troppo serio, dato che al giorno d'oggi abbiamo una grande quantità di memoria.

E quindi, ora abbiamo elencato gli usi della partizione swapfile / swap, quanto è generalmente consigliabile? - dipende dalla funzione della macchina. Se si tratta di una macchina desktop, impostarla su 1-1,5 volte la memoria. Se si tratta di una macchina server, fare lo stesso, ma notare l'uso di swap, se è molto utilizzato, aggiornare la memoria.

Come altri hanno sottolineato, gparted può aiutarti a ritagliare diversi concerti di spazio dalla tua partizione ext2 / ext3, ma puoi anche usare un file di scambio:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

Avresti dovuto

swapfile none swap sw 0 0

on fstabper garantire che venga utilizzato su ogni riavvio

E ancora una cosa: se non ti dispiace avere lo spazio di swap ma vuoi minimizzare l'uso a meno che la tua memoria non sia davvero estesa, puoi cambiare la "swapiness" del kernel cambiando /proc/sys/vm/swappiness(valori, 0-100; default, 60).


Ci possono essere usi per lo swap diversi da quelli che hai dichiarato, come una partizione di swap utilizzata per archiviare automaticamente un file di dump di arresto anomalo. Inoltre, la dimensione della memoria 1-1.5x non è un valore universalmente accettato. In teoria, un computer con più memoria avrebbe bisogno di meno memoria per lo scambio, poiché aveva X RAM esaurita e aveva bisogno di Y più RAM, potrebbe essere in grado di adattare quella memoria aggiuntiva nella RAM disponibile anziché nello scambio.
TOOGAM

@TOOGAM era nel 2010, quando le persone usano cose come 2-4 GB di RAM sul desktop.
bubu,


3

Se hai mai esaurito la memoria, può verificarsi un comportamento imprevedibile per i tuoi programmi. A volte il kernel inizierà a perdere memoria in punti casuali . Il kernel inizierà a perdere processi a bassa priorità.

Nessuna memoria virtuale può comportare grossi problemi, specialmente se inizierà a far cadere la memoria dall'uccisione di documenti importanti a bassa priorità su cui si sta lavorando.


3
Ciò accadrà indipendentemente dal fatto che tu abbia o meno uno swap.
Ignacio Vazquez-Abrams,

2
In realtà, il kernel non "inizierà a perdere memoria in posti casuali". Piuttosto farà ciò che deve essere fatto e inizierà a uccidere i processi considerati "meno importanti" fino a quando la situazione non migliorerà. Questo viene fatto dal "killer OOM". Vedi ad esempio linux-mm.org/OOM_Killer
sleske il

Sono corretto.
Nitrodist,

0

Dopo l'installazione, controlla l'utilizzo della memoria quando esegui operazioni ad alta intensità di memoria o semplicemente apri app "grandi", come Openoffice.org, decomprimendo file e simili. Se vedi che la memoria totale utilizzata è quasi 1,5 GB, allora è probabilmente una buona idea avere una partizione di swap o un file di swap, nel caso in cui esegui convenientemente qualcosa che utilizza molta memoria e Ubuntu inizia a perdere memoria importante, e forse anche parti del kernel (non va bene, davvero non va bene ...).


Sono curioso, è anche possibile fare in modo che Linux lasci cadere parti del suo kernel per liberare memoria per i processi in esecuzione?
Igor Zinov'yev,

Probabilmente no, ma sai cosa intendo ...
Hello71,

AFAIK, il kernel Linux stesso rimane sempre nella memoria. Viene caricato come prima parte della sequenza di avvio e rimane; la memoria non viene mai liberata o addirittura scambiata. Puoi, tuttavia, caricare e scaricare i moduli, e quella memoria verrà liberata (credo), ma in genere è solo una dozzina di kb per modulo. Il kernel mantiene anche varie strutture di dati e buffer interni, potrebbe essere in grado di liberarne alcuni (non sono sicuro però).
sleske,

0

Non una risposta completa, ma ecco una storia di una cosa che mi ha veramente attaccato, anche quando pensavo di avere tutto il possibile lato negativo sotto controllo:

/programming/4567972/error-executing-aapt-all-of-the-sudden In breve, alcuni strumenti eseguiti da processi / applicazioni Java veramente grandi non saranno in grado di funzionare sempre. La maggior parte degli utenti regolari non si imbatterà in questo tuttavia.

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.