Creare uno swap file dinamico
Il fatto di avere una partizione dedicata allo spazio di swap sui sistemi linux ha il vantaggio di non portare frammentazione, come invece puo’ succedere nei sistemi windows, ma ci si puo’ trovare in difficolta’ nel momento in cui questo spazio diventi insufficente, espesso fare un resize della partizione puo’ non essere conveniente.
E’ ovvio che se le richieste di memoria di un sistema aumentano non si deve andare a far lavorare il sistema CONTINUAMENTE sullo swap, l’uso dello swap (questo vale anche per windows e per tutti i sistemi operativi) per quanto possibile DEVE ESSERE EVITATO, pena il crollo delle prestazioni della macchina, si deve quindi sopperire alla mancaza di memoria installando altra memoria ram.
Nel caso in cui, per vari motivi, non sia possibile aggiungere ram e la partizione di swap (che di solito e’ creata proporzionalmente alla ram installata nel computer) fosse insufficente viene in nostro aiuto un programma dal nome dphys-swapfile.
Andiamo a vedere lo stato di una macchina di prova che tengo da parte, la pc (ovviamente virtuale) monta una Debian Etch con 192 mega di ram:
swapon -s
il risultato nel mio caso e’ di mostrare la sua partizione creata all’installazione:
Filename —– Type ———- Size —— Used –Priority
/dev/sda5 —partition — 746.980 —- 0 —— -1
Installiamo il nostro programmino con un
apt-get install dphys-swapfile
Lettura della lista dei pacchetti in corso… Fatto
Generazione dell’albero delle dipendenze in corso… Fatto
I seguenti pacchetti NUOVI (NEW) saranno installati:
dphys-swapfile
0 aggiornati, 1 installati, 0 da rimuovere e 0 non aggiornati.
E’ necessario prendere 9572B di archivi.
Dopo l’estrazione, verranno occupati 111kB di spazio su disco.
Get:1 http://debian.fastweb.it etch/main dphys-swapfile 20061020-1 [9572B]
Scaricato 9572B in 1s (8157B/s)
Selezionato il pacchetto dphys-swapfile, che non lo era.
(Lettura del database … 23543 file e directory attualmente installati.)
Spacchetto dphys-swapfile (da …/dphys-swapfile_20061020-1_all.deb) …
Configuro dphys-swapfile (20061020-1) …
Starting dphys-swapfile swapfile setup …
computing size, want /var/swap=386MByte, generating swapfile … of 386MBytes
done.
Lui ha generato un file di swap grosso il doppio della ram (il suo default) in /var (sempre il suo default), inoltre si e’ messo in esecuzione automatica di modo da ricreare il file di swap ad ogni boot.
Riavviando la macchina infatti mi trovo:
Filename —– Type ———- Size —— Used –Priority
/dev/sda5 —partition — 746.980 —- 0 —— -1
/var/swap —file ———– 395.256 —- 0 —— -2
A questo punto possiamo fare un sacco di cose: per esempio evitare di fare il mount della partizione di swap commentando la relativa riga in /etc/swap, oppure tenere entrambi, sia la partizione che il file, magari mettendo il file su un altro disco fisico
Per modificare i parametri di default calcolati dal programma in base alla ram della macchina si puo’ intervenire nel file di configurazione /etc/dphys-swapfile a seconda delle vostre esigenze

settembre 28th, 2007 at 3:15
Creare uno swap file dinamico…
Il fatto di avere una partizione dedicata allo spazio di swap sui sistemi linux ha il vantaggio di non portare frammentazione, come invece puo’ succedere nei sistemi windows, ma ci si puo’ trovare in difficolta’ nel momento in cui questo spazio d…
settembre 28th, 2007 at 3:52
Ottimo consiglio - questo non lo conoscevo - grazie!
settembre 30th, 2007 at 6:54
Io ho avuto bisogno di più swap quando un giorno installai Oracle Express Edition sul portatile. Con sommo stupore, l’installer voleva a tutti i costi almeno 1024 MB (?!?!?) di swap quando io ne avevo solo 320. Alchè creai su disco un file da 1 GB, lo usai come swap giusto per installare Oracle (così l’installer era contento), per poi cancellarlo. Questo per dire che a volte l’uso della swap è indispensabile.
Non conoscevo questo dphys-swapfile, grazie per la notizia!
ottobre 1st, 2007 at 7:57
[...] Via ZioBudda ecco l’articolo completo. [...]
ottobre 16th, 2007 at 2:01
[...] L’uso piu’ frequente di filesystem dentro un file e’ la creazione di un file di swap in luogo di una partizione di swap, come gia’ spiegato QUI. [...]