Linux: cos'è un file di swap, quando è necessario e come crearlo
- a cura di: maurotramonti
- Commenti:
- Letture:
- Aggiornato: 11/04/2023, 16:08
- Pubblicato: 18/04/2023, 00:00
Grazie al processo di evoluzione tecnologica ed il conseguente innalzamento della quantità di RAM "giusta" per l'utente medio ad 8 GB, l'utilizzo dei file/partizioni di swap si è sicuramente ridotto. Tuttavia, esistono ancora dei casi in cui questa pratica può rivelarsi utile, ad esempio su un vecchio portatile con poca RAM su cui è installata una distro Linux leggera.
L'area di swap - tradotto letteralmente dall'inglese "scambio" - è una porzione di spazio situata sul disco rigido del computer che costituisce una sorta di deposito di dati (al momento) inutilizzati, al fine di liberare memoria RAM per altri processi.
Come viene illustrato in questo schema, i dati dei processi che sono in memoria primaria (ovvero la RAM) possono essere temporaneamente trasferiti nella memoria secondaria (il disco rigido), per poi essere, all'occorrenza, ripescati e trasferiti nuovamente in RAM.
I vantaggi dello swap sono principalmente due:
Lo svantaggio principale è rappresentato dal fatto che il disco rigido, considerando anche il più veloce SSD NVMe, è parecchie volte più lento della RAM: perciò, se quest'ultima iniziasse a saturarsi frequentemente, inizierebbero a palesarsi vistosi rallentamenti originati proprio dal collo di bottiglia creato dal disco rigido (in gergo, il sistema inizia a "swappare").
In passato, il metodo universale per allocare dello swap per la propria distro Linux era creare una partizione dedicata durante il processo di installazione, come nell'immagine seguente.
Oggi, il nuovo standard utilizzato su Ubuntu e derivate è il file di swap: si tratta di un file vuoto di dimensione fissa, creato automaticamente, generalmente al percorso /swapfile.
Il suo equivalente su Windows NT è il cosidetto "file di paging", che assolve allo stesso compito.
Solitamente, o la partizione o il file di swap vengono creati in automatico durante il processo di installazione. Se così non dovesse essere, in caso di bisogno è possibile aggiungere l'uno o l'altro manualmente.
Vien da sé, tuttavia, che ad installazione compiuta è molto più semplice creare un banale file nella root del filesystem, piuttosto che ridurre la partizione di sistema utilizzando una live di GParted e creare una nuova partizione di swap, procedura che comprende sicuramente più rischi.
I passaggi da seguire sono:
sudo su
fallocate -l 2G /swapfile
(naturalmente, sostituiamo i "2G" con la dimensione desiderata; nel caso in cui si voglia utilizzare l'ibernazione, la dimensione deve essere almeno pari a quella della RAM installata)chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Possiamo sincerarci della riuscita dell'operazione digitando il comando free -h
e verificando che la seconda riga di output restituisca informazioni coerenti con ciò che abbiamo impostato nei passaggi precedenti. Un esempio di risultato con un file di swap di un gigabyte:
Per evitare di dover ripetere il passo 5 ad ogni riavvio, modifichiamo il file /etc/fstab, aggiungendo in coda la seguente riga:
/swapfile swap swap default 0 0