Come risolvere i problemi di throttling della CPU Intel su Linux
Ideale per laptop e mini PC
Questo articolo descrive uno strumento che può essere utilizzato per risolvere i problemi di throttling della CPU Intel su Linux. Lo strumento è stato originariamente sviluppato per risolvere i problemi di throttling della CPU che interessano i laptop Lenovo T480 / T480s / X1C6, ma è stato confermato che funziona anche per altri laptop ed in particolar modo, con i mini PC. Personalmente, l’ho testato con successo sul mio Teclast N20Pro.
Come funziona lo strumento
Lo strumento funziona sovrascrivendo i valori predefiniti in MSR e MCHBAR ogni 5 secondi (30 secondi a batteria) per impedire al controller integrato di ripristinare questi valori ai valori predefiniti. Questo consente di forzare il limite di potenza del pacchetto CPU (PL1/2) a un valore di 44 W (29 W a batteria) e il punto di intervento della temperatura a 95 °C (85 °C a batteria).
Su sistemi in cui l’EC non ripristina i valori (ad esempio: ASUS Zenbook UX430UNR), il limite di potenza può essere modificato utilizzando il driver intel_rapl ufficiale (vedere Correzione statica per ulteriori informazioni).
Hardware testato
L’autore ha confermato che lo strumento funziona per i seguenti laptop:
- Lenovo T470s, T480, T480s, X1C5, X1C6, X1C8, T580, L590, L490, L480, T470, X280, X390, ThinkPad Anniversary Edition 25, E590 con RX 550X, P43s, E480, E580, T14 Gen 1, P14s Gen 1, T15 Gen 1, P15s Gen 1, E14 Gen 2, X1 Extreme Gen 4
- Dell XPS 9365, 9370, 9550, 7390 2-in-1, Latitude 7390 2-in-1, Inspiron 16 Plus 7620
- Microsoft Surface Book 2
- HP Probook 470 G5, Probook 450 G5, ZBook Firefly 15 G7
- Testato personalmente anche su Teclast Mini PC N20Pro
L’autore continuerà ad aggiornare questo elenco.
Come installare lo strumento
L’installazione dello strumento varia a seconda della distribuzione Linux che si sta utilizzando. Di seguito sono riportate le istruzioni per alcune delle distribuzioni più diffuse:
Arch Linux
pacman -S throttled
sudo systemctl enable --now throttled.service
Debian/Ubuntu
sudo apt install git build-essential python3-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev python3-cairo-dev python3-venv python3-wheel
git clone https://github.com/erpalma/throttled.git
sudo ./throttled/install.sh
Come gestire il servizio thermald per mantenere alte le prestazioni (Ubuntu)
Se stai riscontrando problemi di throttling della CPU, dovresti verificare che il servizio thermald non stia imponendo limiti di frequenza. Per risolvere il problema, puoi provare a fermare e disabilitare il servizio:
sudo systemctl stop thermald.service
sudo systemctl disable thermald.service
In questo modo il servizio thermald non verrà avviato automaticamente all’avvio del sistema.
Per assicurarti che rimanga disabilitato anche dopo eventuali aggiornamenti del pacchetto, puoi anche eseguire:
sudo systemctl mask thermald.service
Questo comando “maschera” il servizio, impedendone l’avvio in qualsiasi circostanza.
Una volta effettuate queste operazioni, puoi verificare lo stato del servizio throttled utilizzando il comando:
systemctl status throttled
Questo ti permetterà di controllare se il servizio responsabile del throttling della CPU è effettivamente stato disattivato correttamente.
Seguendo questi passaggi, dovresti riuscire a rimuovere i limiti di frequenza imposti da thermald, consentendo alla CPU di funzionare a pieno regime senza subire throttling.
Fedora
sudo dnf copr enable abn/throttled
sudo dnf install -y throttled
sudo systemctl enable --now throttled
openSUSE
sudo zypper install gcc make python3-devel dbus-1-glib-devel python3-cairo-devel cairo-devel python3-gobject-cairo gobject-introspection-devel
git clone https://github.com/erpalma/throttled.git
sudo ./throttled/install.sh
Gentoo
sudo emerge -av sys-power/throttled
# when using OpenRC:
rc-update add throttled default
/etc/init.d/throttled start
# when using systemd:
systemctl enable --now throttled.service
Solus
sudo eopkg it -c system.devel
sudo eopkg it git python3-devel dbus-glib-devel python3-cairo-devel libcairo-devel python3-gobject-devel
git clone https://github.com/erpalma/throttled.git
sudo ./throttled/install.sh
Void
sudo xbps-install -Sy gcc git python3-devel dbus-glib-devel libgirepository-devel cairo-devel python3-wheel pkg-config make
git clone https://github.com/erpalma/throttled.git
sudo ./throttled/install.sh
Come configurare lo strumento
La configurazione dello strumento è disponibile nel file /etc/throttled.conf
. Il file di configurazione contiene due profili, AC e BATTERY, e lo strumento può essere disabilitato completamente impostando Enabled: False
nella sezione GENERAL. L’undervolt viene applicato se è stato impostato un piano di tensione nel file di configurazione (sezione UNDERVOLT). Si noti che l’offset è in mV e che è supportato solo l’undervolting (cioè valori negativi).
Tutti i campi accettano valori in virgola mobile e interi.
Come monitorare lo strumento
Con il flag --monitor
, lo strumento monitora costantemente lo stato di throttling, indicando la causa tra limite termico, limite di potenza, limite di corrente o cross-domain. L’ultimo è spesso legato a un evento esterno (ad esempio, dalla GPU). La frequenza di aggiornamento può essere regolata e per impostazione predefinita è di 1 secondo.
Come disinstallare lo strumento
Per interrompere e disabilitare definitivamente l’esecuzione, basta eseguire:
systemctl stop throttled.service
systemctl disable throttled.service
Se si utilizza runit invece di systemd:
sv down throttled
rm /var/service/throttled
Se si utilizza OpenRC invece di systemd:
rc-service throttled stop
rc-update del throttled default
Se è necessario rimuovere anche lo strumento dal sistema:
rm -rf /opt/throttled /etc/systemd/system/throttled.service
# per eliminare anche il file di configurazione
rm /etc/throttled.conf
Su Arch, si dovrebbe probabilmente usare pacman -R lenovo-throttling-fix-git
invece.
Conclusione
Questo strumento può essere utile per risolvere i problemi di throttling della CPU Intel su Linux. Lo strumento è facile da installare e configurare e può essere monitorato per verificarne il funzionamento.
Ti potrebbe interessare:
Segui guruhitech su:
- Google News: bit.ly/gurugooglenews
- Instagram: instagram.com/guruhitech_official
- Telegram: t.me/guruhitech
- Facebook: facebook.com/guruhitechweb
- Twitter: twitter.com/guruhitech1
- Threads: threads.net/@guruhitech_official
- Bluesky: bsky.app/profile/guruhitech.bsky.social
- GETTR: gettr.com/user/guruhitech
- Rumble: rumble.com/user/guruhitech
- VKontakte: vk.com/guruhitech
- MeWe: mewe.com/i/guruhitech
- Skype: live:.cid.d4cf3836b772da8a
- WhatsApp: bit.ly/whatsappguruhitech
Esprimi il tuo parere!
Ti è stato utile questo articolo? Lascia un commento nell’apposita sezione che trovi più in basso e se ti va, iscriviti alla newsletter.
Per qualsiasi domanda, informazione o assistenza nel mondo della tecnologia, puoi inviare una email all’indirizzo [email protected].