Есть ли способ проверить тактовую частоту моего процессора?

Есть ли способ проверить, на какой тактовой частоте работает мой процессор?

Я уже пробовала cat /proc/cpuinfo но тактовая частота, на которой я работаю, не отображается. Я знаю, что для Ubuntu 12.04 (Precise Pangolin) требуется 700 МГц и VGA, но будет ли работать AMD Mobile Sempron?

20 ответов

Решение

Из командной строки введите lscpu, Информация будет на CPU MHz:

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

Есть несколько способов:

  1. lscpu или точнее lscpu | grep "MHz",
    Это даст вам общую МГц для процессора.

    $ lscpu | grep "MHz".
    CPU MHz:               1600.000
    
  2. cat /proc/cpuinfo или точнее cat /proc/cpuinfo | grep "MHz",
    Это даст вам отдельные МГц для каждого ядра процессора. Так что если у вас есть Core 2 Duo, AMD Bulldozer, Core i7 и т. Д., Он будет показывать МГц для каждого ядра.

    $ 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 cpu или более точная версия: lshw -c cpu | grep capacity
    Даст вам общий МГц. Такой же как 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 processor или точнее: sudo dmidecode -t processor | grep "Speed" Даст вам не только МГц, но и максимум, на который вы можете нажать / разогнать ваш процессор.

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

Из всего этого, lshw а также dmidecode предоставить лучшую информацию из вашего процессора.

Вы также можете указать текущий MHz, обнаруженный ядром, запросив файлы журнала:

cat /var/log/dmesg | grep "MHz processor" - Для текущей обнаруженной скорости МГц

cat /var/log/kern.log | grep "MHz processor" - Для текущих и прошлых обнаруженных скоростей МГц. Не будет работать в некоторых случаях, поэтому я разместил dmesg один первый.

И это все, что я могу вспомнить из головы. Я совершенно уверен, что есть и другие способы, просто не помню сейчас. Разумеется, речь идет о терминальных способах.

Для текущей скорости процессора можно динамически наблюдать это изменение в реальном времени, используя:

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

Чтобы увидеть максимальную скорость процессора, используйте:

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

display-cpufreq-selector - это симпатичный маленький индикаторный инструмент, который показывает текущую частоту вашего процессора. Вы даже можете выбрать желаемую частоту процессора.

введите описание здесь

Однако последнее обновление для этого инструмента было на 2015-10-19.

Это прекрасно работает для скорости процессора в режиме реального времени

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

Пока он активен, вы также можете спамить процессор, чтобы увидеть, какую максимальную скорость он может достичь в реальном времени. openssl speed

Это мой любимый:

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

Хотя, если у вас есть Turbo Boost (или Turbo Core, если AMD), вы, вероятно, предпочтете:

sudo watch -n 1 -d cpupower monitor

который использует cpupower из группы linux-tools.

Я просто хотел бы добавить i7z в этот список. В отличие от других опций, это работает лучше для процессоров серий i7, i5 и i3, которые имеют TurboBoost.

Я хотел бы отметить, sudo необходим для ответа Яна выше:

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

Однако вы можете получить те же результаты без использования sudo:

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

Мое любимое - использовать Conky, где вы можете нарисовать свою собственную картинку:

Это сидит справа от моего встроенного дисплея все время. Соответствующий код для секции 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

Если вы используете встроенное устройство ARM (например, телефоны на базе Raspberry или ARM), вы не сможете использовать решения, использующие lscpu, dmidecode или же /proc/cpuinfo потому что текущая скорость там не указана, если инструмент вообще доступен. Вместо этого вы должны использовать 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

sudo powertop затем дважды нажмите Tab, чтобы перейти на вкладку "Статистика по частоте".

Он отображает фактическую частоту (точно на моем ноутбуке, в отличие от dmidecode) вместе со статистикой о том, сколько времени тратится на каждую доступную частоту.

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

Вот простой способ получить частоты процессора для всех потоков процессора:

  1. Будь уверен что cpufrequtils установлено.

  2. Затем в терминале выполните следующую команду:

    cpufreq-info | grep "frequency is"
    

В терминале Linux введите следующую команду, чтобы получить имя ядра процессора и его текущую скорость:

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

Я хотел бы поделиться этим в качестве комментария, но у меня не так много репутации на askubuntu. Людям, которые хотят использовать индикатор-cpufreq, не нужно перезагружать компьютер. Сброс текущего сеанса X достаточно для отображения значка.

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

Вы можете проверить параметры Performance и Powersave, увидев текущую частоту:

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

Как только вы нажимаете на более низкую частоту / Powersave, включается управление питанием процессора, тем самым сокращая тактовую частоту.

В терминале введите:

cat /proc/cpuinfo | grep name

Он должен отображать точную модель вашего процессора.

Эта страница Википедии на Sempron даст вам подробные спецификации.

Оптимизация гнома Vitals показывает мне более точно 2,5 (даже 2,7 ГГц) моего Ryzen 2500, другие показывали 2 Гц. ( pdfsandwich OCR'ing pdf-файл - хороший тестер, поскольку он максимизирует все процессоры)

https://extensions.gnome.org/extension/1460/vitals/

Ubuntu 22.04 больше не предоставляет текущую скорость процессора в lscpu без дополнительных флагов -ae, поэтому, чтобы получить среднюю скорость процессора, у меня есть скрипт cpuspeed в /usr/local/bin/:

      data=`lscpu -ae | cut -c 61-69 | grep -iv MHz`
total=0.001
count=0
while read -r line
do
    total=`awk "BEGIN {z=$total + $line; print z}"`
    let count+=1
done <<< $data
avg=`echo $total / $count | bc`
echo $avg

Все, что он делает, это распечатывает среднюю скорость процессора в МГц. Если вы хотите постоянно следить за ним, вызовите его из часов.

Хотя мне нравится i7z, он выдает число без необходимости что-либо устанавливать или иметь много других вещей вокруг него.

(назначение 0,001 для итога - это мой хак, чтобы убедиться, что математика с плавающей запятой работает, и я уверен, что все будут критиковать меня за то, что у меня три разных математических метода в 3 строках! Пожалуйста, не ругайте мой Bash)

Обратите внимание, что /proc/cpuinfo содержит неправильные значения . Из-за этого я использую это:

      watch -n2 "cpufreq-info | grep 'current CPU'"

Результат:

А вот неправильный результат /proc/cpuinfo:

Пример вывода 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:

Вот cpu MHz означает текущую частоту процессора. Вы можете запустить cpufreq-info понять легко.

Команда Run sudo i7z, преимущество этой команды в том, что она сообщает частоту процессора в реальном времени с другой информацией, такой как температура. Раньше я использовал sensorsдля температуры, но он показал температуру один раз. Эта команда запускает процесс с отображением информации в реальном времени.

Другие вопросы по тегам