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.
COS'è LO SWAP?
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:
- Evitare il blocco totale del sistema operativo in caso di esaurimento completo della memoria volatile
- Permettere l'ibernazione del computer: tutto il contenuto della RAM viene salvato nello swap, per essere poi recuperato quando il dispositivo viene "risvegliato" dall'ibernazione, consentendo di riprendere il lavoro esattamente dal punto in cui l'abbiamo interrotto
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").
PARTIZIONE E FILE DI SWAP
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.
AGGIUNTA DI UNO SPAZIO DI SWAP AD UNA DISTRIBUZIONE ESISTENTE
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:
- Acquisire i permessi di root, digitando il comando
sudo su
- Creare il file vero e proprio, utilizzando il comando
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) - Impostiamo i permessi adeguati:
chmod 600 /swapfile
- "Formattiamo" il file come swap:
mkswap /swapfile
- Infine, abilitiamo il nostro swap con il comando
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:
ABILITAZIONE AUTOMATICA DELLO SWAP ALL'AVVIO
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