Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestione swap e compilazione del kernel Linux

Linux: come configurare una partizione di swap e compilare il kernel Linux per migliorare le prestazioni del sistema
Linux: come configurare una partizione di swap e compilare il kernel Linux per migliorare le prestazioni del sistema
Link copiato negli appunti

Benvenuti in questo decimo ed ultimo appuntamento dedicato al tuning delle performance dei sistemi Linux.

Nella precedente lezione abbiamo illustrato la procedura per installare e configurazione al meglio il window manager Openbox cosi da ottimizzare al massimo le prestazioni di Ubuntu.

Quest'oggi invece parleremo di come gestire lo spazio di swap di Ubuntu e come compilare un kernel Linux per incrementare le prestazioni del nostro sistema.

Questi due aspetti consentono infatti all'utente di migliorare la gestione dei task e rendere il proprio workflow notevolmente più fluido, senza andare ad investire in una nuova configurazione hardware.

Lo spazio swap

Con il termine swap ci si riferisce ad una tecnologica software in grado di estendere la capacità della memoria RAM presente all'interno di una configurazione hardware, tramite l'allocazione di una partizione specifica del disco fisso o la generazione di un file dedicato.

In buona sostanza il sistema operativo può sfruttare un determinato quantitativo di spazio sull'SSD (Solid State Drive) o sull'HDD (Hard Disk Drive) ed utilizzarlo come se si trattasse di un banco di RAM, dunque estendendo virtualmente il quantitativo di memoria volatile presente sul computer.

Ovviamente lo swap non è veloce tanto quanto la RAM vera e propria ma consente comunque di non rallentare le operazioni dell'utente.

Tramite lo swap è possibile rendere più fluido un computer a cui non è possibile aumentare la RAM, magari perché saldata direttamente nella scheda madre.

Grazie alle partizioni/file di swap Ubuntu può gestire contemporaneamente più applicazioni in esecuzione, oppure portare a termine una grande quantità di task senza appesantire eccessivamente il sistema.

Per evitare che l'utente si renda conto della differenza di prestazioni tra RAM ed SSD/HDD, le operazioni di swapping dei dati vengono eseguite ben prima che il sistema operativo esaurisca concretamente tutta la memora RAM a disposizione.

Compilazione del kernel Linux

Un'altra strategia per migliorare le prestazioni del proprio sistema consiste nel compilare una versione personalizzata del kernel Linux.

Le distribuzioni infatti possono essere eseguite con un kernel "cucito" su misura per la configurazione hardware corrente oppure includendo delle patch dedicate ad uno specifico device.

Compilare il kernel tramite il codice sorgente può velocizzare anche notevolmente le operazioni di boot, visto che vengono caricati unicamente i driver ed i pacchetti software necessari al funzionamento del PC.

Tuttavia non si tratta di un operazione semplicissima, basta però seguire in modo preciso gli step che andremo ad illustrare per ottenere un boost delle performance.

Creare e gestire una partizioni di swap

Ubuntu 20.04 LTS utilizza un file di swap che può modificare in caso di necessità. Quindi gli utenti della distribuzione utilizzano di base tale tecnologia.

Tuttavia fino a qualche anno fa Ubuntu generava una partizione di swap dedicata.

Tale impostazione viene ancora implementa nel mondo server, dove è necessario lavorare con grandi quantità di dati ed il singolo file di swap può non bastare o non essere sufficientemente efficiente.

Tuttavia nulla vieta di creare una partizione sul proprio disco dedicata allo swap e migliorare ulteriormente le prestazioni del sistema.

In generale la dimensione dello swap dipende dalla quantità di memoria RAM presente sul PC.

Ad esempio per avere dei vantaggi prestazionali concreti su un computer con 8GB di RAM sarebbe meglio impostare una partizione di swap della medesime dimensione. Mentre quando si hanno a disposizione più di 8GB di RAM bisognerebbe sempre configurarne almeno 4GB o più.

Per creare la partizione di swap ci affideremo al live CD/USB di Ubuntu, lo stesso che abbiamo utilizzato per installare la distribuzione sul nostro PC.

Dunque eseguiamo il boot nell'ambiente live e tramite la sezione "Attività", presente in alto a sinistra sul Desktop, cerchiamo il tool chiamato GNOME Disk Utility.

gnome disk-utility

Una volta aperto questo programma ci troveremo di fronte alla lista dei dischi presenti nel PC.

Selezioniamo quello dove è installato Ubuntu e clicchiamo sull'opzione "Ridimensiona", presente nel menu contestuale richiamabile dal bottone con le ruote dentate stilizzate, per ridurre appunto la dimensione della partizione dedicata alla distribuzione e creare lo spazio per quella di swap.

Per proporre un esempio concreto, se abbiamo un disco da 120GB ed 8GB di RAM, possiamo ridurre la partizione di sistema fino a 112GB per ottenere 8GB di spazio per lo swap.

resize partizione ubuntu

Eseguita tale operazione clicchiamo sul nuovo spazio nel disco non allocato e formattiamolo tramite l'omonima opzione.

Successivamente selezioniamo le voci "Altro>Partizione swap Linux". Infine clicchiamo sui pulsanti "Successivo>Applica" per eseguire la procedura.

formattare swap ubuntu

formattare swap ubuntu

Ora riavviamo il PC e questa volta eseguiamo il boot normalmente, rimuovendo dunque il live CD/USB dal computer.

A questo punto non sarà necessario fare altro, la partizione di swap verrà automaticamente rilevata da Ubuntu che inizierà ad utilizzarla automaticamente.

Compilare manualmente il kernel Linux

Come accennato in precedenza, la compilazione di un kernel Linux personalizzato consente di velocizzare il boot di Ubuntu. Eseguire tale operazione non è complicato, bisogna però porre molta attenzione alla procedura che adesso vi andremo ad illustrare.

Prima di tutto eseguiamo il download dei file compressi del codice sorgente del kernel dal sito ufficiale Kernel.org. Il nostro consiglio è di utilizzare la tarball della versione stable o longterm.

download linux tarball

Successivamente andiamo nella directory dove abbiamo scaricato il tutto e creiamo una cartella chiamata linux_kernel.

Ora decomprimiamo la tarball del kernel al suo interno con l'applicativo "Gestione di Archivi" oppure tramite l'opzione "estrai in" richiamabile cliccando sulla tarball con il tasto destro del mouse.

nuova cartella ubuntu

gestione archivi

Successivamente prepariamo il sistema per eseguire la compilazione.

Dunque apriamo il terminale, cercandolo tramite la sezione "Attività" in alto a sinistra del Desktop, ed usiamo APT (Advanced Packaging Tool), il package di riferimento di Ubuntu, per installare questi pacchetti:

sudo apt install build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev

Arrivati a questo punto spostiamoci sulla directory dove abbiamo estratto il codice sorgente del kernel:

cd /Scaricati/linux_kernel/linux-5.XX.Y

Ovviamente al posto di X e Y dobbiamo impostare il numero della versione scaricata.

Adesso creiamo una copia dell'attuale file di configurazione del kernel cosi da averlo a disposizione per la compilazione:

sudo cp /boot/config-$(uname -r) ./.config

Successivamente avviamo il tool localmodconfig per impostare i driver che vogliamo includere all'interno del nostro kernel personalizzato.

compilazione kernel Linux

Dunque nella shell digitiamo:

sudo make localmodconfig

A questo punto il terminale inizierà a porvi delle domande sui vari moduli che desiderate includere nella compilazione.

La risposta dipende interamente dalle vostre preferenze e necessità. Se non sapete cosa rispondere cercate informazioni su Google oppure nella wiki di Ubuntu. Oppure digitate sempre "yes" per includere tutto ciò che vi verrà proposto.

Adesso procediamo alla compilazione vera e propria scrivendo questo comando nella shell:

sudo make -j4 deb-pkg

Il numero quattro è la quantità di core fisici da assegnare ai lavori di compilazione. Se il vostro processore ha molti core a disposizione potete aumentare tale numero oppure diminuirlo.

compilazione del kernel Linux

Compilare il kernel richiederà del tempo, dai 30minuti fino ad un ora per certe configurazioni hardware, dunque mettetevi comodi ed aspettate.

Non appena il processo sarà finito potete installare il pacchetto del kernel generato cosi:

sudo dpkg -i linux-*.deb

Successivamente è necessario aggiornare GRUB, il bootloader di Ubuntu, in modo tale che venga visualizzato il kernel appena installato:

sudo update-grub

Ora eseguite un reboot del sistema e nella lista di opzioni di GRUB sarà possibile visualizzare il kernel Linux appena compilato ed eseguire l'avvio del sistema.

Ti consigliamo anche