Ubuntu e rilevamento della velocità del processore


12

Ho un laptop più vecchio che utilizzo come media center sulla mia TV e di solito sto installando / reinstallando / disinstallando diversi sistemi operativi e app per farlo funzionare nel modo più fluido possibile.

Una cosa che ho notato era molto strana. Il mio laptop è un HP Pavilion G62 che ha un processore AMD triplo core a 1800mhz. Quando avvio XBMC da Windows 7 e guardo alle velocità del processore, dice chiaramente 1800mhz. Tuttavia, quando lo avvio da Ubuntu o dal programma di avvio o come una sessione, si dice che il processore è solo 800mhz.

Volevo indagare ulteriormente, quindi ho caricato DXDIAG in Windows per vedere quale fosse la velocità. Abbastanza sicuro, indica che è 1800mhz. Tuttavia, quando si avvia HardInfo in Ubuntu, mi dice che la velocità di ciascun core è la seguente: 1500mhz, 1500mhz e 800mhz.

Ciò significa che sia la velocità del processore pubblicizzata sia la velocità rilevata da Windows sono distese o arrotondate? Oppure c'è un problema con Ubuntu che rileva la velocità del mio processore e il mio sistema non funziona in modo ottimale come dovrebbe? Sarei propenso a dire quest'ultimo ... principalmente perché sembra che Windows funzioni molto più agevolmente di Ubuntu.


4
Si prega di inviare l'output di cpufreq-info. Potrebbe essere necessario installarlo sudo apt-get install cpufrequtilsprima.
terdon,

2
"quando lo avvio da Ubuntu o dal programma di avvio o come una sessione, si dice che il processore è solo 800mhz." potresti fare uno screenshot?
Braiam,

Risposte:


11

Di default Ubuntu usa il regolatore di frequenza ondemand . Per controllare / cambiare i regolatori, installare il cpufrequtilspacchetto in questo modo:

sudo apt-get install cpufrequtils

Per verificare la velocità / i regolatori correnti di ciascuna corsa principale:

cpufreq-info

È possibile impostare tutti i core su prestazioni in questo modo:

sudo cpufreq-set -r -g performance

Puoi confermare che ora tutti i core funzionano alla loro massima frequenza in questo modo:

grep MHz /proc/cpuinfo

Nota : questa modifica è temporanea. Una volta riavviato, tornerà alla ondemand .


1
Grazie per le informazioni! Ho eseguito i comandi che hai elencato, e ha superato il primo core della CPU fino a 1800mhz, ma il resto era a 800mhz. Questo, secondo la risposta eccellente dettagliata di Sergey di seguito, è molto probabilmente normale per il mio sistema.
Scotty_80,

Modificata la risposta per includere il parametro -c, che indica quale frequenza del numero di CPU dovrebbe essere impostata. Non sono riuscito a trovare un modo per specificare tutti i numeri della CPU contemporaneamente. Sto anche cercando di scrivere uno script per abilitare la modalità performance quando è alimentata a corrente alternata e la modalità ondemand quando è a batteria. Se qualcuno ha già una soluzione per questo, si prega di aggiungere qui. Grazie.
Sri

1
Per impostare le prestazioni di tutti i cpus in una volta sola, passa prima alla modalità superutente con sudo su e quindi usa questo: for ((i = 0; i <$ (nproc); i ++)); esegui cpufreq-set -c $ i -r -g performance; fatto
Sri

10

Background teorico: in un tipico computer, la CPU è inattiva per la maggior parte del tempo. Per risparmiare energia, le moderne CPU implementano il ridimensionamento di frequenza , ovvero il sistema operativo può dire alla CPU di passare a una frequenza inferiore quando il carico è basso. La tecnologia si chiama SpeedStep nei processori Intel e Cool'n'Quiet nei processori AMD.

Nel kernel Linux il ridimensionamento della frequenza è implementato cpufreqdall'infrastruttura, che utilizza un concetto di "governatori" per controllare la frequenza.

Il governatore predefinito è "ondemand", che aumenta la frequenza quando l'utilizzo del processore supera il 95%. Ciò consente alla CPU di risparmiare energia mentre è inattiva e di passare al massimo delle prestazioni quando ci sono cose da fare. C'è una certa latenza di transizione, misurata in millisecondi, quindi quando una CPU inattiva diventa improvvisamente un grande carico, continua a rallentare a bassa frequenza per alcuni millisecondi prima di passare alla piena potenza, quindi in determinate situazioni ciò può comportare prestazioni leggermente inferiori rispetto a quando sempre alla massima velocità.

Esistono altri governatori , incluso il "performance" che esegue sempre la CPU alla sua massima frequenza. Ciò elimina la latenza di commutazione, ma può aumentare il consumo di energia.

Puoi sperimentare diversi governatori come suggerito in un'altra risposta, ma dubito che produrrà risultati drammatici. Non lo renderebbero predefinito se non avesse senso nel 99% dei casi :)

Tornando alla tua domanda, però: molto probabilmente, Windows ti mostra la massima frequenza possibile della CPU (quella che pubblicizzano sul box della CPU), mentre Ubuntu ti mostra la frequenza effettiva con cui ogni core della CPU gira in questo particolare momento. Ciò non significa che la CPU funzioni più lentamente in Ubuntu. Se sembra che Ubuntu funzioni lentamente sul tuo laptop, molto probabilmente è causato da qualcos'altro - ad esempio, RAM bassa, disco rigido lento ecc. Ubuntu moderna richiede certamente più risorse di, diciamo, Windows XP che probabilmente troverai su un laptop più vecchio.

Lettura più tecnica:


Questo lo spiega sicuramente! Tuttavia, se dovessi impostare il governatore su Performance, non dovrebbero funzionare tutti i miei core CPU a 1800mhz? Attualmente, quando cambio l'impostazione, imposta solo CPU1 a 1800mhz. Gli altri 2 sono solo a 800mhz. Suppongo che questo potrebbe essere solo definito come una limitazione della CPU ...
Scotty_80
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.