Usa Zswap per Migliorare le Prestazioni su PC Linux con Bassi Quantitativi di RAM

Affrontiamolo, alcuni di noi non aggiornano così spesso. O, almeno, come utenti Linux, ci piace riutilizzare i nostri vecchi laptop/computers. Molte distribuzioni funzionano comodamente su sistemi con basse quantità di RAM (Memoria Ad Accesso Casuale). Tuttavia, i browser non sono così indulgenti, richiedendo sempre più memoria man mano che Internet si evolve.
Mentre un sistema con l’ambiente desktop LXDE può richiedere solo 150MB di RAM dopo l’avvio, Chromium, Chrome o Firefox inizieranno rapidamente a utilizzare centinaia di megabyte e anche più gigabyte di RAM man mano che apriamo alcune schede.
Ed è allora che succede! L’hard disk inizia a fare quel suono di macinamento. La musica inizia a balbettare. Quando passiamo a un’altra applicazione, ci vogliono decine di secondi prima che appaia sullo schermo. Anche il cursore del mouse potrebbe iniziare a laggare. Questo è l’effetto del thrashing del disco.
Cos’è il Thrashing del Disco?
Prima di tutto, dobbiamo comprendere lo swap. Quando finiamo la RAM libera, i dati delle applicazioni che il sistema operativo non ha utilizzato da molto tempo vengono spostati nell’area di swap. Questo avviene spesso su un dispositivo di archiviazione fisico. Facendo questo, il sistema operativo può liberare parte dello spazio di memoria di cui un programma ha bisogno ora. In questo modo, una scheda nel nostro browser che non abbiamo utilizzato nell’ultima ora può essere spostata sul disco rigido. Ora l’editor di immagini GIMP può funzionare. Quando lo chiudiamo e torniamo a quella vecchia scheda, il sistema operativo lo riporta in memoria (lo legge dal disco e lo copia di nuovo nella memoria ad accesso casuale).

Questo meccanismo funziona bene quando si scambiano piccole quantità di dati. Ma quando, diciamo, sono disponibili solo 2GB di RAM e tutti i programmi che abbiamo aperti necessitano di 4GB, il sistema operativo deve scambiare costantemente. Spostare dati dalla memoria al disco, dal disco alla memoria e di nuovo, costantemente, è molto lento, soprattutto con gli hard disk. In una situazione simile, il dispositivo di archiviazione non è in grado di soddisfare le richieste abbastanza velocemente. In breve, quando si verifica il thrashing del disco, le cose diventano molto lente.
Le Unità SSD Sono Ottime per Lo Swap
C’è un mito che circola ancora su Internet: “Non impostare mai lo swap su SSD. Ucciderà il tuo dispositivo!” Questo era vero alcuni anni fa, ma non più. In effetti, impostare lo swap su un’unità SSD porta a risultati eccezionali. Se il computer include un dispositivo SSD che ha buone prestazioni di lettura/scrittura casuale (almeno 300MB), imposta una partizione di swap su di esso e ignora il resto di questo articolo. Quando il sistema operativo deve scambiare 1GB di dati, ci vorranno meno di cinque secondi, mentre su un hard disk ci vorrebbero più di un minuto.
Come Ridurre Significativamente il Thrashing del Disco su Linux

Fortunatamente, la maggior parte dei dati memorizzati nella RAM è molto compressibile. Ciò significa che se prendiamo 200MB di dati memorizzati nella memoria e li comprimi, possiamo ridurre la dimensione a 100MB. Di conseguenza, significa che il sistema dovrà scrivere molti meno dati sul disco quando scambia.
Immagina che invece di dover aspettare trenta secondi per passare a un programma, ora devi aspettarne quindici. È un miglioramento palpabile. Ma, in effetti, l’accelerazione è molto più significativa (potrebbe essere necessario aspettare meno di dieci secondi) perché lo strumento che utilizzeremo è più sofisticato di così. Invia intelligentemente al disco solo i bit e pezzi che non possono essere compressi, mantenendo il resto in una porzione riservata della memoria. Se desideri leggere di più sul suo funzionamento interno, dai un’occhiata alla pagina ufficiale del kernel Linux riguardante zswap.
Una versione semplice dei benefici che otteniamo utilizzando zswap è che invece di orribili rallentamenti quando finiamo la memoria, otteniamo rallentamenti tollerabili e lievi che durano per secondi invece di decine di secondi o addirittura minuti.
Come Abilitare zswap Su Distribuzioni Basate su Debian (Ubuntu, Linux Mint, ecc.)
Apri un’applicazione terminale ed esegui questo comando per modificare il file di configurazione del modello del bootloader Grub:
sudoedit /etc/default/grub
Con i tasti cursore, naviga alla riga che inizia con “GRUB_CMDLINE_LINUX_DEFAULT”. All’interno delle virgolette, aggiungi il seguente testo:
zswap.enabled=1
Per esempio, una riga che era GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" diventa GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1".
Per salvare il file, premi Ctrl + X, seguito da “y” e poi Invio.
Genera i nuovi file di configurazione di Grub in base al modello che abbiamo modificato in precedenza:
sudo update-grub
Riavvia e il modulo zswap sarà abilitato automaticamente.
Come Abilitare zswap su Fedora e OpenSUSE
La procedura qui è simile a quella nella sezione precedente, ma con alcune variazioni. Modifica il file di configurazione del modello di Grub.
sudoedit /etc/default/grubAggiungi zswap.enabled=1 all’interno delle virgolette, sulla riga che inizia con GRUB_CMDLINE_LINUX.

Premi Ctrl + X, seguito da “y” e poi Invio per salvare il file.
A seconda di se il tuo computer avvia da un sistema BIOS o UEFI, il file di configurazione di Grub viene generato in un percorso diverso. Per trovare dove si trova attualmente, inserisci il seguente comando:
sudofind/boot/-name grub.cfg
Usa il percorso che viene restituito qui nel prossimo comando. Ad esempio, nel nostro caso il percorso trovato era “/boot/grub2/grub.cfg,” quindi lo aggiungeremo alla fine del prossimo comando dopo “-o”:
sudo grub2-mkconfig -o/boot/grub2/grub.cfgRiavvia il computer. Dopo il riavvio, controlla se il modulo è attivo:
cat/sys/module/zswap/parameters/enabledSe l’output è “Y,” allora il modulo funziona correttamente.
Come Abilitare zswap su Arch Linux
Installa il pacchetto systemd-swap:
sudo pacman -Sy systemd-swap
Fai in modo che questo pacchetto faccia il suo lavoro all’avvio:
sudo systemctl enable systemd-swapAvvialo ora, senza riavviare:
sudo systemctl start systemd-swapPer controllare se tutto ha funzionato come previsto, verifica se il modulo zswap è abilitato:
cat/sys/module/zswap/parameters/enabled
Se l’output è “Y,” significa che il modulo è attivo.
Come Abilitare zswap su Diverse Distribuzioni
Parlando in generale, abilitare zswap all’avvio è semplice come aggiungere zswap.enabled=1 ai parametri del kernel. La maggior parte delle distribuzioni utilizza Grub2 come bootloader per impostazione predefinita. Se stai utilizzando un bootloader diverso, trova il file di configurazione in cui memorizza i parametri del kernel da passare all’avvio e aggiungi zswap.enabled=1 come parametro aggiuntivo.
Un altro parametro che puoi testare per vedere se migliora le prestazioni per il tuo caso d’uso specifico è zswap.max_pool_percent=20. Puoi regolarlo cambiando il numero alla fine: ad esempio, zswap.max_pool_percent=50.
Aggiungilo agli stessi parametri del kernel in cui aggiungi zswap.enabled=1. È consigliabile non superare il 50% poiché più di ciò può avere effetti dannosi su sistemi con basse quantità di RAM.
Conclusione
Se in passato ti è capitato frequentemente di esaurire la RAM sul tuo vecchio sistema e hai sperimentato i fastidiosi effetti del thrashing del disco, noterai immediatamente e apprezzerai la differenza d’ora in poi. Invece di orribili rallentamenti, sperimenterai lag lievi e temporanei che durano solo per alcuni secondi (anziché minuti) quando il sistema operativo deve scambiare molti dati sul disco. Sarai in grado di continuare a lavorare in situazioni in cui prima non potevi utilizzare affatto il tuo computer durante il tempo in cui scambiava.