La creazione di uno spazio di swap

Un file di swap un file ordinario e non viene considerato in maniera speciale dal kernel. L'unica cosa che importa al kernel che non deve avere buchi e che sia preparato all'uso con mkswap. Deve risiedere su un disco locale, comunque, e non pu trovarsi su un filesystem montato via NFS per ragioni di implementazione.

La parte sui buchi importante: il file riserva lo spazio disco in modo che il kernel possa fare velocemente lo swap di una pagina senza dover fare tutti i passi necessari per allocare un settore di un disco ad un file. Il kernel usa semplicemente i settori che sono stati allocati per il file; dato che un buco significa che per quel posto nel file non sono allocati settori, non bene che il kernel provi ad usarli.

Un modo buono per creare il file di swap senza buchi usando questo comando:

$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024+0 records in
1024+0 records out
$
dove /extra-swap il nome del file di swap e la sua dimensione viene data dopo count=. È meglio che la dimensione sia un multiplo di 4, perch il kernel manda in swap pagine di memoria di 4 kilobyte. Se la dimensione non un multiplo di 4 l'ultimo paio di kilobyte pu restare inutilizzato.

Anche una partizione di swap non in nessun modo una partizione speciale: la si crea come una qualsiasi altra partizione, l'unica differenza che viene usata cos com' e non contiene un filesystem. È una buona idea segnare le partizioni di swap come tipo 82 (Linux swap); in questo modo renderete pi chiara la tabella delle partizioni, anche se non strettamente necessario per il kernel.

Dopo aver creato un file o una partizione di swap bisogna scrivere al suo inizio una firma che contiene delle informazioni di amministrazione usate dal kernel. Il comando per farlo mkswap, che si usa cos:

$ mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
$
Notate che lo spazio di swap non ancora in uso: esiste, ma il kernel non lo usa per fornire memoria virtuale.

Va fatta molta attenzione nell'usare mkswap, dato che questo non controlla che il file o la partizione non siano usati per altre cose. Potete facilmente sovrascrivere file e partizioni importanti! Per fortuna di solito si usa mkswap solo quando si installa il sistema.

Il gestore di memoria di Linux limita la dimensione di ciascuno spazio di swap a circa 127 MB (per varie ragioni tecniche, il limite reale (4096-10) * 8 * 4096 = 133890048 byte, o 127.6875 megabyte). Potete comunque usare fino a 8 spazi di swap simultaneamente, per un totale di circa 1 GB[1].

Note

[1]

Un gigabyte qui, un gigabyte l, presto cominceremo a parlare di memoria vera.