web analytics

[GUIDA] Linux: migliorare le performance ottimizzando lo scheduler

linux

In questo articolo cerchiamo di capire come è possibile migliorare le performance del vostro PC Linux quando sotto stress. Per farlo useremo CFS Zen Tweaks, uno script bash che agisce sullo scheduler della CPU per garantire una migliore reattività del desktop in condizioni di elevato carico.

Scheduler

Prima di parlarvi di CFS Zen Tweaks voglio fare una brevissima digressione sul concetto di scheduler. Chi non è interessato può passare direttamente alla sezione successiva.

Lo scheduler è un componente del kernel che, di fatto, si occupa di stabilire quale (e quando) processo va assegnato alla CPU. Chiaramente il suo compito è molto importante perché si occupa di gestire le priorità, la sospensione dei processi e quindi l’assegnazione delle risorse.

linux cpu scheduler
Un semplice diagramma degli stati che vi aiuta a capire come opera uno scheduler.

Ci sono diverse tipologie di scheduling. Se un sistema prevede la preemption della CPU, il kernel può togliere la CPU al processo running a favore di un altro processo, in questo caso si parla di preemptive scheduling. Uno scheduling cooperativo invece non permette al sistema operativo di togliere l’uso della CPU al processo running il quale lascia la CPU solo se si interrompe autonomamente, oppure quando termina la sua esecuzione.

I sistemi operativi moderni eseguono concorrenzialmente varie tipologie di processi: alcuni richiedono un gran uso di CPU, altri sono computazionalmente più leggeri ma devono essere eseguiti in tempi brevissimi. In uno scenario di questo tipo è chiaro che l’assegnazione dei processi assume un ruolo chiave.

Linux: Performance Boost con CFS Zen Tweaks

Le impostazioni predefinite del kernel non sono ottimizzate per un utilizzo su desktop, il throughput assume maggior rilevanza rispetto alla latenza. Lo scheduler di default (Completely_Fair_Scheduler, CFS) tende a favorire la starvation delle applicazioni desktop. Ciò si traduce in un sistema meno reattivo quando la CPU è sottoposta ad un carico rilevante.

Per cercare di minimizare il problema, sono nati scheduler alternativi, come MuQSS. Altri si sono dedicati allo sviluppo di migliorie per CFS: utilizzando CFS Zen Tweaks, noterete una migliore reattività del desktop. Ad esempio, il suo autore afferma che in uno scenario in cui la CPU sta lavorando per compilare del codice, e parallelamente le viene richiesto di gestire uno streaming su YouTube, la reattività del sistema migliora e non si manifestano più lag.

L’ovvio vantaggio derivante dall’uso di questi tweak ad hoc, rispetto all’installazione di un kernel personalizzato, consiste nalla possibilità di continuare ad utilizzare i pacchetti ufficiali della vostra distribuzione Linux (in modo da ottenere aggiornamenti ufficiali senza il rischio di fare dei danni).

Qual è il prezzo da pagare? A causa di un elevato numero di context switch noterete un maggior battery drain: la batteria del vostro laptop si esaurirà più velocemente.

Download

CFS Zen Tweaks è distribuito come pacchetto DEB (perfetto per Debian, Ubuntu, Linux Mint, Pop!_OS, etc.), RPM (Fedora), e lo trovate anche in AUR per Arch Linux / Manjaro.

Se vi interessa utilizzare solo lo script e il servizio systemd potete dare un’occhiata alla pagina GitHub ufficiale per il download del codice sorgente. Per usarlo dovete installare la shell bash, gawk, e systemd per applicare le impostazioni al boot. Per farlo, dopo aver completato l’installazione dei vari pacchetti, date il seguente comando da terminale:

systemctl enable --now set-cfs-tweaks.service

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.