Come si usa lo spazio di swap

Uno spazio di swap inizializzato si mette in uso con swapon, che comunica al kernel che può essere utilizzato. Come argomento viene dato il percorso per il file o la partizione, quindi per cominciare ad usare uno spazio di swap temporaneo si può fare:

$ swapon /extra-swap
$
Gli spazi di swap possono essere usati automaticamente elencandoli nel file /etc/fstab.
/dev/hda8        none        swap        sw     0     0
/swapfile        none        swap        sw     0     0
Gli script di avvio fanno partire il comando swapon -a, che comincerà ad usare come swap tutti gli spazi elencati in /etc/fstab. Il comando swapon è quindi necessario solo se si usano spazi di swap supplementari.

Si può controllare l'utilizzo degli spazi di swap usando il comando free, che dice la quantità totale di spazio di swap usata.

$ free
             total       used       free     shared    buffers
Mem:         15152      14896        256      12404       2528
-/+ buffers:            12368       2784
Swap:        32452       6684      25768
$
La prima linea di output (Mem:) mostra la memoria fisica. La colonna total non considera la memoria fisica usata dal kernel, che in genere è circa un megabyte, used mostra la quantità di memoria usata (nella seconda linea non vengono contati i buffer), free quella totalmente inutilizzata e shared quella condivisa da diversi processi: più è, meglio è. La colonna buffer mostra la dimensione corrente della cache di buffer del disco.

L'ultima linea (Swap:) mostra le stesse informazioni per gli spazi di swap. Se questa linea contiene tutti zeri, non avete attivato lo spazio di swap.

Le stesse informazioni sono disponibili con top o usando il filesystem proc, in particolare il file /proc/meminfo. Al momento è difficile avere delle informazioni sull'uso di uno spazio di swap specifico.

Uno spazio di swap può essere disabilitato con swapoff; in genere non è necessario farlo, tranne che per gli spazi di swap temporanei. Le pagine in uso nello spazio di swap vengono per prima cosa copiate nella memoria; se non c'è memoria fisica sufficiente vengono messe in un altro spazio di swap. Se non c'è abbastanza memoria virtuale per mantenere tutte le pagine Linux comincerà a fare rumore; dopo un po' di tempo dovrebbe tornare normale, ma nel frattempo il sistema è inutilizzabile. Bisognerebbe sempre controllare (ad esempio con free) che ci sia abbastanza memoria libera prima di disabilitare uno spazio di swap.

Tutti gli spazi di swap che vengono usati automaticamente con swapon -a possono essere disabilitati usando swapoff -a, che va a guardare in /etc/fstab per vedere quali spazi rimuovere. Gli spazi di swap attivati manualmente rimarranno in uso.

Talvolta può venire usato spazio di swap anche se c'è molta memoria fisica libera; ad esempio se ad un certo punto c'è bisogno di fare swap, ma poi un processo grande che occupava molta memoria fisica termina e libera la memoria. I dati messi in swap non vengono reinseriti in memoria automaticamente, ma solo quando servono, quindi la memoria fisica può restare libera per parecchio tempo. Non c'è bisogno di preoccuparsene, ma può essere confortante sapere cosa sta succedendo.