Un modo per controllare la velocità di clock del mio processore?


187

Esiste un modo per verificare a quale velocità di clock è in esecuzione il mio processore?

Ho già provato cat /proc/cpuinfoma la velocità di clock che sto correndo non sta mostrando. So che Ubuntu 12.04 (Precise Pangolin) richiede 700 MHz e VGA, ma funzionerà un AMD Mobile Sempron?


Hai bisogno di più specifici nella seconda parte della tua domanda. Conosci il numero del modello?
LiveWireBT

Grazie per tutte le risposte ma ora sto bene!
user1610406

Risposte:


199

Dal tipo di riga di comando lscpu. Le informazioni saranno a CPU MHz:

~$ lscpu | grep MHz
CPU MHz:               804.901
CPU max MHz:           3200.0000
CPU min MHz:           800.0000

12
Si noti che il valore della CPU MHz non è fisso e potrebbe cambiare di secondo in secondo luogo.
Cerin,

18
Se vi piacerebbe avere l'aggiornamento in tempo reale, ciò contribuirà a: watch -n1 "lscpu | grep 'MHz' | awk '{print $1}'".
Amal Murali,

1
@Ivan: Mi dispiace, non tenerlo presente. L'output di questo comando:watch -n1 "lscpu | grep 'MHz' | awk '{print $1}'"
Amal Murali

3
@Ivan: Okay, eccoti:watch -n1 "lscpu | grep 'CPU MHz' | awk '{print $1}'"
Amal Murali,

1
@Ivan: per un'osservazione momentanea, non è necessario watch. Questo avrebbe fatto: lscpu | grep 'CPU MHz' | awk '{ print $3; }'. Non sono sicuro dell'output esatto che stai ricevendo sul tuo sistema. Spiegherò il comando se questo aiuta: prima lscpuottiene l'output completo che contiene informazioni relative alla CPU, grepquindi cerca CPU MHze stampa solo quella riga, awkelimina il $N-thblocco e lo visualizza. E se vuoi che il risultato cambi in tempo reale, allora avvolgi il comando in a watch -n1 "...".
Amal Murali,

173

Ci sono un paio di modi:

  1. lscpuo più preciso lscpu | grep "MHz".
    Questo ti darà il MHz generale per la CPU.

    $ lscpu | grep "MHz".
    CPU MHz:               1600.000
    
  2. cat /proc/cpuinfoo più preciso cat /proc/cpuinfo | grep "MHz".
    Questo ti darà i singoli MHz per ciascun core della CPU. Quindi, se hai un Core 2 Duo, un bulldozer AMD, un Core i7, ecc. Mostrerà il MHz per ciascun core.

    $ cat /proc/cpuinfo | grep "MHz"
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 1600.000
    cpu MHz     : 3400.000
    
  3. lshw -c cpuo versione più precisa: lshw -c cpu | grep capacity
    ti darà il MHz generale. Come lscpu.

    $ lshw -c cpu | grep capacity
    WARNING: you should run this program as super-user.
           capacity: 1600MHz
    WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
    
  4. sudo dmidecode -t processoro più preciso: sudo dmidecode -t processor | grep "Speed"non solo ti darà un MHz in uso ma anche il massimo su cui puoi spingere / overcloccare la tua CPU.

    $ sudo dmidecode -t processor | grep Speed
    [sudo] password for cyrex: 
        Max Speed: 4000 MHz
        Current Speed: 2666 MHz
    

Di tutto questo lshwe dmidecodefornire le migliori informazioni dalla tua CPU.

Puoi anche scegliere come target l'attuale MHz rilevato dal kernel eseguendo una query sui file di registro:

cat /var/log/dmesg | grep "MHz processor" - Per l'attuale velocità MHz rilevata

cat /var/log/kern.log | grep "MHz processor"- Per le velocità MHz rilevate attuali e passate. In alcuni casi non funzionerà, ecco perché ho pubblicato dmesgprima quello.

E questo è tutto ciò che posso ricordare dalla cima della mia testa. Sono abbastanza certo che ci sono altri modi, ma non ricordo adesso. Certo, parlando di vie terminali.


1
Per me, tutte le opzioni tranne dmidecode hanno dato una lettura falsa: sto overcloccando un chip Intel E6600 2.4ghz su una scheda gigabyte ga-965p-ds3 3.3 con moltiplicatore 7x e frequenza CPU 400mhz per dare CPU 2.8ghz, ma il moltiplicatore di stock è 9 (9x266 = 2.4ghz) quindi sospetto che il resto degli strumenti supponga che il moltiplicatore sia disponibile e moltiplicato per la CPU mhz, quindi nel mio caso tutti danno 3,6ghz.
dez93_2000,

3
dmidecodesembra essere l'unico a riportare accuratamente la velocità di clock durante l'overclocking
Avindra Goolcharan

1
Si noti che le informazioni dmidecodegeneralmente non possono essere ritenute attendibili per essere accurate per il proprio sistema perché leggono solo i dati dalle tabelle DMI, il che potrebbe essere errato. La pagina man di dmidecode dice anche che le informazioni sono "probabilmente inaffidabili", e prosegue: "La tabella DMI non descrive solo ciò di cui è composto il sistema, ma può anche riportare le possibili evoluzioni (come la CPU più veloce supportata o la massima quantità di memoria supportata). " "Il più delle volte, le informazioni contenute nelle tabelle DMI sono inaccurate, incomplete o semplicemente sbagliate."
Cerran,

1
dmidecodenon sembra funzionare, mostra che la CPU è bloccata alla massima frequenza, il che non è preciso, ne sono abbastanza sicuro. powertope lscpumostra la frequenza variabile effettiva.
Rolf,

1
Non è necessario cat /path/to/file | grep "some string"- si può semplicemente grepil file direttamente invece: grep "some string" /path/to/file. Risposta fantastica, però.
mgarey

89

Per l'attuale velocità della CPU è possibile osservare dinamicamente questo cambiamento in tempo reale utilizzando:

sudo watch -n 1  cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

Per visualizzare la velocità massima della CPU, utilizzare:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq 

4
+1, so che si tratta di un sito Ubuntu, ma questa sembra essere l'unica risposta che fornisce un comando completamente indipendente dal sistema operativo.
Andy E

Se ricevi l'autorizzazione negata nel tentativo di leggere scaling_max_freq, prova cpuinfo_max_freq.
LightStruk,

6
cpufreq/cpuinfo_cur_freqnon esiste
Ken Sharp

1
+1, anche su diversi sistemi basati su ARM che eseguono ubtunu funziona solo questa soluzione. Ogni altra "soluzione" fornita in questa pagina fallisce lì, mentre funziona ovunque.
Philippos,

4
intel_pstate Il driver freq CPU non fornisce cpuinfo_cur_freq. cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driverper vedere quale driver è attualmente utilizzato. A proposito, cpuinfo_cur_freqè il punto di vista dell'hardware ed scaling_cur_freqè il punto di vista del kernel dell'attuale frequenza della CPU. Altro su static.lwn.net/kerneldoc/admin-guide/pm/…
Yasushi Shoji,

15

indicatore-cpufreq-selector è un piccolo strumento indicatore che mostra la tua frequenza attuale della CPU. Puoi anche selezionare la frequenza della cpu desiderata.

inserisci qui la descrizione dell'immagine

Tuttavia, l'ultimo aggiornamento per questo strumento è stato il 19-10-2015 .


5
Puoi installarlo usando sudo apt-get install indicator-cpufreq.
Wilf,

2
E dopo l'installazione, dovrai riavviare prima che venga visualizzato.
Talirico

Non funziona bene nel nuovo Ubuntus, se non del tutto.
Ken Sharp,

7

Vorrei sottolineare che sudoè necessario per la risposta di Ian sopra:

sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

Tuttavia puoi ottenere gli stessi risultati senza sudo usando:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

Il mio preferito è usare Conky dove puoi dipingere la tua foto:

Conky.gif

Si trova sempre sulla destra del mio display integrato. Il codice rilevante per la sezione CPU è:

${color2}${voffset 5}Intel® i-7 3630QM 3.4 GHz: ${color1}@  ${color green}${freq} MHz   
${color}${goto 13}CPU 1 ${goto 81}${color green}${cpu cpu1}% ${goto 131}${color3}${cpubar cpu1 18}
${color}${goto 13}CPU 2 ${goto 81}${color green}${cpu cpu2}% ${goto 131}${color3}${cpubar cpu2 18}
${color}${goto 13}CPU 3 ${goto 81}${color green}${cpu cpu3}% ${goto 131}${color3}${cpubar cpu3 18}
${color}${goto 13}CPU 4 ${goto 81}${color green}${cpu cpu4}% ${goto 131}${color3}${cpubar cpu4 18}
${color}${goto 13}CPU 5 ${goto 81}${color green}${cpu cpu5}% ${goto 131}${color3}${cpubar cpu5 18}
${color}${goto 13}CPU 6 ${goto 81}${color green}${cpu cpu6}% ${goto 131}${color3}${cpubar cpu6 18}
${color}${goto 13}CPU 7 ${goto 81}${color green}${cpu cpu7}% ${goto 131}${color3}${cpubar cpu7 18}
${color}${goto 13}CPU 8 ${goto 81}${color green}${cpu cpu8}% ${goto 131}${color3}${cpubar cpu8 18}
${color1}All CPU ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${hwmon 2 temp 1}°C ${goto 250}${color1}Up: ${color green}$uptime

1
Dov'è Conky e cos'è?
not2qubit

@ not2qubit io aggiornare questa risposta più tardi, ma nel frattempo si veda questo articolo Arch Linux: wiki.archlinux.org/index.php/conky
WinEunuuchs2Unix

6

Vorrei solo aggiungere i7za questo elenco. Contrariamente alle altre opzioni, questo funziona meglio per le CPU delle serie i7, i5 e i3 che hanno TurboBoost.


Esattamente quello di cui avevo bisogno. E mostra anche tensioni Vcore, moltiplicatori Turbo, arresti C0, ecc. Molto bello!
Andriy Makukha,

A testa alta, richiede 30 MB di rubino e strumenti assortiti.
Gringo Suave,

3
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

2

Se si utilizza un dispositivo embedded ARM (come ad esempio un telefoni basati Raspberry o ARM), non sarà in grado di utilizzare le soluzioni utilizzando lscpu, dmidecodeo /proc/cpuinfoperché la velocità corrente non è elencato lì, se lo strumento è affatto disponibile. Invece devi usare sysfs :

alias getcpuf='i=1; for x in $(sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq); do y=$(($x/1000)); echo "CPU-${i}: $y MHz"; i=$((i+1)); done;'

# getcpuf
CPU-1: 600 MHz
CPU-2: 600 MHz
CPU-3: 600 MHz
CPU-4: 600 MHz

2

Ecco un modo semplice per ottenere le frequenze della CPU per tutti i thread della CPU:

  1. Assicurati che cpufrequtilssia installato.

  2. Quindi in un terminale, eseguire il comando seguente:

    cpufreq-info | grep "frequency is"
    

2

Funziona bene con velocità del processore in tempo reale

 watch "grep 'cpu MHz' /proc/cpuinfo"

Mentre è attivo, puoi anche inviare spam al processore per vedere quali velocità massime in tempo reale può raggiungere openssl speed



1

Volevo condividere questo come commento, ma non ho molte reputazioni su askubuntu, le persone che vogliono usare indicatore-cpufreq non hanno bisogno di riavviare il computer. Il ripristino della sessione X corrente è sufficiente per visualizzare l'icona.

sudo apt-get install indicator-cpufreq   
DISPLAY=:0 compiz --replace

È possibile convalidare l'opzione Performance e Powersave visualizzando la frequenza corrente di

watch -d "cat /proc/cpuinfo | grep -i Mhz"

Non appena si fa clic su una frequenza inferiore / Risparmio energia, interviene la gestione della CPU, riducendo così il ciclo di clock.


Probabilmente anche l'utente che si disconnette e si
riconnette

1

Questo è il mio preferito:

watch -n1 "cat /proc/cpuinfo | grep 'MHz'"

Anche se hai Turbo Boost (o Turbo Core se AMD), probabilmente preferirai:

sudo watch -n 1 -d cpupower monitor

che utilizza cpupowerdal gruppo linux-tools .


0

Esempio di output di cat /proc/cpuinfo

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

Qui cpu MHzsignifica la frequenza attuale della CPU. Puoi correre cpufreq-infoper capire facilmente.


ridondante e lungo!
Rishav Ambasta,

0

In un terminale Linux digitare il comando seguente per ottenere il nome del core della CPU e la sua velocità corrente:

cat /proc/cpuinfo | grep -E "model name|cpu MHz"


0

sudo powertop quindi premi due volte Tab per accedere alla scheda "Statistiche di frequenza".

Visualizza la frequenza effettiva (precisa sul mio computer portatile, al contrario di dmidecode), insieme alle statistiche su quanto tempo viene trascorso in ciascuna frequenza disponibile.


Ha una linea specifica per la frequenza corrente? Sembra solo mostrare la percentuale di tempo in cui ogni frequenza + stato inattivo è "attivo", nessuna indicazione di quale sia attivo in questo momento?
Xen2050,

@ Xen2050 La frequenza della CPU può cambiare avanti e indietro in millisecondi, quindi sono più interessato alle statistiche. Puoi correre powertop -t 1per un ritardo basso, in modo che le statistiche vengano aggiornate ogni secondo.
Rolf,

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.