Ottimizzare GNU/Linux: Ridurre lo Swappiness

12.11.2016 03:36

 Ottimizzare GNU/Linux: Ridurre lo Swappiness

Uno dei metodi utili per ottimizzare e velocizzare GNU/Linux su un computer obsoleto o con poca memoria RAM, è sicuramente ridurre la percentuale di swappiness.

Cosa significa? Poniamo caso che il nostro computer abbia 1 Gb di memoria RAM. Nel disco rigido (Se l'installazione del sistema è stata automatica) sarà presente 1 Gb dedicato alla memoria SWAP. La swap serve a non fare andare in panico il sistema quando non ha più RAM da usare perchè è satura. Quindi il sistema comincia ad usare la swap. Questo però lo farà risultare notevolmente lento, perchè la swap che si trova sul disco rigido è molto più lenta della memoria RAM. Perciò se abbiamo poca RAM e capita di saturarla, e ci ritroviamo a "swappare" andando terribilmente lenti, possiamo ridurre al minimo la necessità di swappare senza aggiungere RAM.

Questo perchè di default il sistema comincia a 'swappare' quando la RAM è occupata al 40%-50%, quindi molto presto. Significa che se abbiamo 1 Gb di RAM, il sistema comincierà a rallentare già usando solo 500 Mb di RAM anche se ne abbiamo altri 500 Mb disponibili. Quindi possiamo cambiare questa percentale, in modo che il sistema swapperà solo quando avremo quasi saturato tutta la RAM in modo da sfruttare tutto ciò che abbiamo e non subire rallentamenti precoci.

Come fare questo? Detto fatto, è un procedimento molto semplice. Questo che vedremo ora si rivolge alle diffuse distribuzioni Debian-Based (Es: Debian, Ubuntu, Linux Mint, Ecc.); mentre per altre distribuzioni GNU/Linux differisce comunque giusto il file da modificare.*

Apriamo un terminale e digitiamo quanto segue:

  • cat /proc/sys/vm/swappiness

Con questo comando ci verrà risposto a quanto è impostata la percentuale di swappiness attualmente. Di default ci mostrerà 60 probabilmente:

Significa che quando manca il 60% ad occupare tutta la RAM, il sistema comincierà a spostare parte dei processi sulla swap.

Cambiamo il 60 in un valore basso, come il 10. Nel terminale diamo il comando:

  • sudo gedit /etc/sysctl.conf

Dopo aver inserito la nostra password ci uscirà un file di testo, portiamoci all'ultima riga, creiamone una nuova (Se non è già presente) premendo invio, e senza il cancelletto davanti scriviamoci:

  • vm.swappiness=10

Una volta fatto e salvato, il file di testo dovrà apparirci così:

10 è il nostro valore, a mio avviso il più consigliabile, che determinerà la percentuale di swappiness. Salviamo il file, chiudiamo e riavviamo e avremo ridotto lo swappiness in modo da avere un sistema veloce usando tranquillamente tutta la RAM a disposizione.

Se vogliamo essere sicuri dell'esatta modifica avvenuta che sia corretta per dormire tranquilli la notte, una volta riavviato il sistema possiamo aprire il terminale e dare come fatto all'inizio il comando:

  • cat /proc/sys/vm/swappiness

Il risultato che ci mostrerà sarà il valore da noi impostato (10).

* Con distribuzioni GNU/Linux meno diffuse ma molto conosciute nel mondo Unix-Like, tra le quali troviamo Fedora, Suse, ArchLinux, Gentoo, le loro derivate ed altre, il procedimento differisce solo nel file da modificare, che diventa il seguente:

  • /etc/sysctl.d/99-sysctl.conf

Il resto del procedimento è lo stesso medesimo.