В Linux сведения о процессоре можно получить несколькими командами, и большинство из них уже есть в системе. Ниже - как узнать модель, количество ядер и потоков, частоту, поддержку виртуализации и температуру.

lscpu - основная команда

bash
lscpu

Вывод выглядит так (значения у вас будут свои):

text
Architecture:             x86_64
CPU(s):                   <число логических процессоров>
Model name:               <производитель и модель>
Thread(s) per core:       <потоков на ядро>
Core(s) per socket:       <ядер в процессоре>
Socket(s):                <число процессоров>
CPU max MHz:              <максимальная частота>
L1d cache, L2 cache, L3 cache:  <объём кэша>
Virtualization:           VT-x или AMD-V
Flags:                    <список поддерживаемых инструкций>

Как читать:

  • CPU(s) - логические процессоры, то есть потоки, которые видит система. Равно произведению Socket(s) × Core(s) per socket × Thread(s) per core.
  • Core(s) per socket - физические ядра в одном процессоре.
  • Thread(s) per core - 2, если включена многопоточность (Hyper-Threading у Intel, SMT у AMD), иначе 1.
  • Socket(s) - сколько физических процессоров установлено. На обычных компьютерах 1, на серверах бывает 2 и больше.
  • Virtualization - поддержка аппаратной виртуализации. Если строки нет, виртуализация не поддерживается или выключена в BIOS/UEFI.

Подробная таблица по каждому логическому процессору - какому ядру и сокету он принадлежит, текущая и предельная частота:

bash
lscpu -e

На ARM-системах (одноплатные компьютеры, серверы и ноутбуки на ARM) lscpu тоже работает, но вместо Model name иногда показывает только архитектуру ядер, а частоты - не всегда.

Только число ядер

bash
nproc

Число процессоров, доступных текущему процессу. Удобно в скриптах, например make -j$(nproc). В контейнере с ограничением по процессору nproc может показать меньше, чем физически есть на машине.

/proc/cpuinfo

bash
cat /proc/cpuinfo

Те же сведения отдельно по каждому логическому процессору: модель, частота, размер кэша, флаги. Полезные выборки:

bash
grep -m1 "model name" /proc/cpuinfo      # модель
grep -c ^processor /proc/cpuinfo         # число логических процессоров
grep "cpu MHz" /proc/cpuinfo             # текущая частота каждого потока

Поддержка виртуализации и инструкций

Список флагов в lscpu или /proc/cpuinfo показывает, какие наборы инструкций поддерживает процессор. Проверить конкретный:

bash
grep -o -w -E 'vmx|svm' /proc/cpuinfo | sort -u   # виртуализация: vmx - Intel, svm - AMD
grep -o -w -E 'avx2|avx512f' /proc/cpuinfo | sort -u
grep -o -w 'aes' /proc/cpuinfo | sort -u         # аппаратное ускорение AES

Если флага виртуализации нет, а процессор её точно поддерживает, она выключена в настройках BIOS/UEFI. Внутри виртуальной машины флаги зависят от того, что пробросил гипервизор.

Частота

Текущая частота меняется постоянно: процессор снижает её в простое и повышает под нагрузкой.

bash
watch -n1 "grep 'cpu MHz' /proc/cpuinfo"    # наблюдать в реальном времени
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq   # текущая частота ядра 0, в кГц
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor    # режим управления частотой

Подробнее о режимах и пределах частоты расскажет утилита cpupower (пакет linux-tools в Ubuntu, kernel-tools в Fedora и RHEL, cpupower в Arch):

bash
cpupower frequency-info

Температура

Термометр, процессор с вентилятором и линии тепла

Нужен пакет lm-sensors:

bash
sudo apt install lm-sensors     # или    sudo dnf install lm_sensors
sudo sensors-detect             # один раз, на вопросы можно отвечать по умолчанию
sensors

Команда покажет температуру каждого ядра или процессора целиком, а также пределы, которые производитель считает высокими и критическими. Без дополнительных пакетов температура часто доступна в /sys/class/thermal/thermal_zone*/temp (в тысячных долях градуса).

На виртуальных машинах температура процессора недоступна: её видит только хост.

Сведения из BIOS

bash
sudo dmidecode -t processor

Данные, которые сообщает прошивка: производитель, модель, номинальная и максимальная частота, число ядер, тип разъёма. Полезно, когда нужно узнать что-то о процессоре, не загружая его: например, на сервере с несколькими сокетами, один из которых пуст.

Графические и сводные утилиты

  • lshw -class processor - сведения о процессоре в составе общего описания оборудования;
  • inxi -C - короткая сводка о процессоре (inxi -F - обо всей системе);
  • hwinfo --cpu - подробные сведения в openSUSE и других системах, где есть этот пакет.

В графических средах сведения о процессоре есть в «Настройки» → «О системе» (GNOME) или в «Информации о системе» (KDE Plasma).