Linux узнать количество ядер процессора

Обновлено: 07.07.2024

Подробная информация о процессоре, о которой мы будем говорить, содержит в себе сведения о количестве ядер, о наличии режима hyper threading, об архитектуре, о размере кэша и т. д. Найти в вашей системе эту информацию, относящуюся к процессору, может быть слегка затруднительным, поскольку ее нужно получать помощью разных команд.

К командам, которые мы будем использовать, относятся команды lscpu, /proc/cpuinfo и lstopo (hwloc). С их помощью можно узнать подробную информацию о ядрах и процессорах. В следующих примерах объясняется, как следует интерпретировать результаты, выдаваемые этими командами.

1. Поставщик и модель процессора

Чтобы определить поставщика и название модели процессора, выполните с помощью команды grep поиск в файле /proc/cpuinfo.

Это процессор фирмы Intel. Затем находим имя модели, которое можно использовать для поиска точных спецификаций на сайте Intel.

Это процессор "Core 2 Quad Q8400".

2. Архитектура

С помощью команды lscpu можно узнать архитектуру процессора.

3. Частота

Частоту/скорость работы процессора можно узнать с помощью команды lscpu и в файле /proc/cpuinfo.

Поскольку большинство современных процессоров работают на более низких частотах для экономии энергии, частота, о которой сообщается, может быть ниже, чем действительная частота работы указанного процессора. Когда нагрузка увеличивается, они переключаются на более высокую частоту.

Изменение частоты можно обнаружить в файле of /proc/cpuinfo, если использовать для этого команду watch.

Запустите в терминале указанную выше команду и, пока она работает, запустите какую-нибудь задачу, которая интенсивно использует процессор, и частота должна увеличиться.

4. Количество ядер

Каждое ядро процессора является, на самом деле, независимым процессором. Несколько ядер позволяют процессору одновременно выполнять несколько команд в программе, в результате чего скорость обработки данных увеличивается.

Команда lscpu указывает "количество ядер в одном сокете".

Таким образом, в этом случае количество ядер в процессоре равно 4.

В файле /proc/cpuinfo также есть информация о количестве ядер, но ее получить немного сложнее и запутаннее.

Простой подсчет количества процессоров может дать неправильное количество.

В случае, когда используется режим hyper threading, количество процессоров, которые видит операционная система, в два раза превышает количество ядер. Но в файле /proc/cpuinfo есть поле с именем "core id", которое уникально для каждого ядра одного процессора. Подсчет этих имен позволяет получить четкое представление о количестве реальных ядер в процессоре

Несколько процессоров

Редко, но в тех случаях, если вы используете систему, в которой имеется несколько физических процессоров (да, это означает 2 или больше процессоров, установленных на материнской плате), то результаты в файле /proc/cpuinfo будут другими. В случае нескольких процессоров, "physical id" будет означать несколько значений.

Если есть более одного идентификатора физического процессора, то это означает, что в системе есть несколько физических процессоров. И в каждом процессоре вы должны посчитать ядра отдельно.

5. Технология Hyper threading

Hyper threading это технология фирмы Intel, которая позволяет одному ядру выполнять обработку так, как если бы это было два ядра. Это в определенных случаях также некоторым образом увеличивает вычислительную мощность каждого ядра.

Если количество ядер равно количеству процессоров, которые видно в ОС, то режим hyper threading отсутствует. В противном случае, т. е. если количество блоков обработки больше (в два раза больше) числа ядер, то режим hyper threading присутствует.

В качестве примера возьмем процессор Core 2 Quad Q8400

Количество процессоров, как показано в /proc/cpuinfo, равно 4

Количество "cpu cores" = 4, также, как и "siblings" = 4, а "core id" = 4

Поэтому общее число процессоров равно количеству фактических ядер. Следовательно на этом процессоре режим hyper threading отсутствует, что и подтверждается спецификациями процессора, приводимыми на сайте Intel.

Процессор с технологией hyper threading

Сведения, касающиеся hyper threading, которые присутствуют в /proc/cpuinfo или в выходных данных lscpu будут отличаться.

Теперь давайте взглянем на данные из /proc/cpuinfo.

Здесь "cpu cores" = 4 и "siblings" = 8 означают, что имеется 4 ядра и по 2 гиперпотока на ядро. Количество процессоров, как это показано в /proc/cpuinfo, также будет равно 8.

Флаг HTT в выходных данных dmidecode и флаг ht во флагах /proc/cpuinf могут давать неверную информацию, касающуюся режима hyper threading.

Для процессора Core2Quad Q8400 dmidecode и /proc/cpuinfo показывают, что флаг гиперпотоков установлен, несмотря на то, что в данном процессоре режим hyper threading недоступен.

Утилита hwloc / lstopo

Утилита hwloc является небольшой утилитой, которая сообщает о структуре процессора в виде приятной диаграммы. В диаграмме показано количество ядер, наличие режима hyper threading и объем кэш-памяти. Обо всем рассказывает одна схема.


Процессор с технологией hyper threading

Для процессора с режимом hyper threading, выдаваемая диаграмма hwloc может выглядеть следующим образом


Favorite

Добавить в избранное

Главное меню » Операционная система Linux » 4 способа найти количество ядер CPU в Linux

(2 оценок, среднее: 4,50 из 5)

4 способа найти количество CPU ядер в Linux

В моем предыдущем посте мы обсудили, как найти список наиболее потребляемых процессов в Linux. Теперь мы обсудим, как найти количество ядер CPU в Linux.

Вопрос: Как найти количество ядер CPU в Linux?

Использование файловой системы Proc

Для того чтобы найти количество ядер CPU в Linux, можно воспользоваться файловой системой proc. Эта процедура представляет собой псевдо-файловую систему, которая отслеживает среду выполнения.

Для того, чтобы получить информацию центрального процессора, вам нужно просто cat “/proc/cpuinfo” в proc. Это дает детальную информацию о процессоре, таком как VENDOR_ID, семейства CPU, модель, CPU МГц и т.д., как показано ниже:

Следовательно, чтобы найти количество ядер CPU в Linux с точными деталями используйте следующую команду:

Вот в этом случае мы получили 3 процессора, число в диапазоне от 0 до 2.

С помощью команды lscpu

Вы также можете найти количество ядер CPU в Linux с помощью команды lscpu.

В приведенном выше примере четко упоминается число процессоров 3 напротив заголовка “CPU(s)”.

Использование команды NPROC

Команда NPROC поможет найти количество ядер CPU в Linux напрямую, без grep или расчета, и показано ниже.

С помощью команды dmidecode

Команда dmidecode также предоставляет информацию о процессоре вместе с другой аппаратной информацией, такой как системная информация, информация о вентиляторах. Чтобы получить точно или найти количество ядер CPU в Linux с помощью команды dmidecode, вам нужно указать grep со словом CPU, как показано ниже:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

В зависимости от ваших потребностей о процессоре можно узнать различную информацию. Вам может понадобится производитель, модель, тактовая частота, количество ядер или потоков, конфигурация кэша, доступные расширения процессора (аппаратная виртуализация, AES, MMX, SSE) и так далее. В Linux существует уйма инструментов как командной строки так и с графическим интерфейсом которые показывают информацию об оборудовании и в том числе процессоре.

В этой статье собраны самые лучшие и удобные инструменты с помощью которых можно посмотреть характеристики процессора Linux. Среди них есть как консольные утилиты, так и графические.

Информация о процессоре Linux

1. /proc/cpuinfo

Простейший метод посмотреть характеристики процессора - открыть автоматически обновляемый системой файл /proc/cpuinfo. В этом файл показаны характеристики используемого процессора:

Здесь вы можете узнать количество ядер и потоков процессора, тактовую частоту, модель, доступные расширения процессора, и еще несколько других вещей.

2. cpufreq-info

Утилита cpufreq-info входит в набор утилит для управления частотой процессора cpufrequtils, и позволяет посмотреть частоту каждого из ядер процессора, максимальную и минимальную частоты на которых может работать процессор, а также политику управления cpufreq. Перед использованием утилиту надо установить:

sudo apt install cpufrequtils

Для просмотра информации о первом ядре используйте:

cpufreq-info -c 0


3. cpuid

Консольная утилита cpuid показывает подробную информацию о процессоре используя набор функций CPUID. Выводится тип и семейство процессора, расширения, конфигурация кэша, TLB и информация про функции управления питанием. Для установки выполните:

sudo apt install cpuid


4. dmidecode

Утилита dmidecode собирает подробную информацию об оборудовании системы на основе данных DMI в BIOS. Отображаемая информация включает производителя, версию процессора, доступные расширения, максимальную и минимальную скорость таймера, количество ядер, конфигурацию кэша L1/L2/L3 и т д. Здесь информация о процессоре Linux намного легче читается чем у предыдущей утилиты.

sudo dmidecode -t 4

5. hardinfo

Hardinfo это графическая утилита которая позволяет получить информацию о процессоре и другом оборудовании в системе в графическом интерфейсе. Утилиту надо установить:

sudo apt install hardinfo


6. i7z

Утилита i7z - монитор параметров процессора в реальном времени для процессоров Intel Core i3, i5 и i7. Он отображает информацию по каждому ядру в реальном времени, такую как состояние TurboBoost, частота ядер, настройки управления питанием, температура и т д. У i7z есть консольный интерфейс основанный на Ncurses, а также графический на базе библиотек Qt.

7. inxi

Команда inxi - это bash скрипт, написанный для сбора информации о системе в удобном и понятном для человека виде. Он показывает модель процессора, размер кэша, скорость таймера и поддерживаемые дополнительные возможности процессора. Для установки используйте:

sudo apt install inxi


8. likwid-topology

Likwid (Like I Knew What I'm Doing) - это набор инструментов командной строки для измерения, настройки и отображения параметров оборудования компьютера. Информация о процессоре может быть выведена с помощью утилиты likwid-topology Она показывает модель и семейство процессора, ядра, потоки, кэш, NUMA. Установка:

sudo apt install likwid


9. lscpu

Команда lscpu отображает содержимое /proc/cpuinfo в более удобном для пользователя виде. Например, архитектуру процессора, количество активных ядер, потоков, сокетов.

10. lshw

Команда lshw - универсальный инструмент для сбора данных об оборудовании. В отличии от других инструментов для lshw необходимы права суперпользователя так как утилита читает информацию из DMI в BIOS. Можно узнать общее количество ядер, и количество активных ядер. Но нет информации об кэше L1/L2/L3.

sudo lshw -class processor


11. lstopo

Утилита lstopo входит в пакет hwloc и визуализирует топологию системы. Сюда входит процессор, память, устройства ввода/вывода. Эта команда полезна для идентификации архитектуры процессора и топологии NUMA. Установка:

sudo apt install hwloc

12. numactl

Первоначально разрабатываемая для настройки планировки NUMA и политик управления памятью в Linux numactl также позволяет посмотреть топологию NUMA:

sudo apt install numactl


13. x86info

x86info - инструмент командной строки для просмотра информации о процессорах архитектуры x86. Предоставляемая информация включает модель, количество ядер/потоков, скорость таймера, конфигурацию кэша, поддерживаемые флаги и т д. Установка в Ubuntu:

sudo apt install x86info


14. nproc

Утилита просто выводит количество доступных вычислительных потоков. Если процессор не поддерживает технологию HyperThreading, то будет выведено количество ядер:


15. hwinfo

Утилита hwinfo позволяет выводить информацию о различном оборудовании, в том числе и о процессоре. Программа отображает модель процессора, текущую частоту, поддерживаемые расширения. Наверное, это самый простой способ узнать частоту процессора Linux:


Выводы

В этой статье мы собрали самые популярные утилиты которые позволяют посмотреть процессор linux. Как видите, их действительно очень много. А какими программами пользуетесь вы? Мне нравится lscpu. Напишите в комментариях!

Я хотел узнать, сколько ядер у моей системы, поэтому я искал тот же вопрос в Google. У меня есть некоторые команды, такие как lscpu команда. Когда я попробовал эту команду, она дала мне следующий результат:

В частности, этот вывод показывает:

  • ЦП: 4
  • Core (s) на сокет: 4
  • Семейство процессоров: 6

Что из этого указывает на ядра системы Linux?

Есть ли какая-либо другая команда, чтобы определить количество ядер, или я предполагаю, что она полностью неверна?

Моя простая команда для всех пользователей: $ grep precessor / proc / cpuinfo | wc -l

Вы должны смотреть на сокеты и ядра на сокет. В этом случае у вас есть 1 физический процессор (сокет), который имеет 4 ядра (ядра на сокет).

У меня есть один сокет, два процессора на сокет, так что это будет означать всего 2. Однако, это говорит о 4 процессорах. Если я попробую, nproc я верну 4. Используя cat /proc/cpuinfo я получаю 4, и, таким образом, кажется, что этот ответ является неправильным, по крайней мере, для моей ситуации. Нет, если у вас есть гиперпоточность. У вас все еще есть 2 физических ядра, но каждое ядро ​​отображается в / proc / cpuinfo дважды. Если вы внимательно посмотрите под coreid, вы увидите, что каждый coreid указан дважды. Также под флагами вы можете увидеть флаг ht.

Чтобы получить полную картину, вам нужно посмотреть на количество потоков на ядро, ядер на сокет и сокетов . Если вы умножите эти числа, вы получите количество процессоров в вашей системе.

ЦП = потоков на ядро ​​X ядер на сокет X сокетов

Процессоры - это то, что вы видите при запуске htop (они не равны физическим процессорам).

Вот пример с настольного компьютера:

Вывод nproc соответствует количеству ЦП от lscpu . Для настольного компьютера выше это должно соответствовать 8 процессорам, о которых сообщают lscpu :

Вывод /proc/cpuinfo должен соответствовать этой информации, например, на настольной системе выше мы видим, что есть 8 процессоров (ЦП) и 4 ядра (идентификатор ядра 0-3):

Чтобы конкретно ответить на ваш вопрос, вы говорите, сколько ядер у вас есть, умножая количество ядер на каждый сокет на количество имеющихся у вас сокетов.

Сердечники = сердечники на гнездо X розетки

Для приведенных выше примеров систем настольный компьютер имеет 4 ядра:

Пока на сервере есть 16:

Еще одна полезная утилита, dmidecode которая выводит информацию по каждому сокету. В случае серверной системы, указанной выше, мы ожидаем увидеть 8 ядер на сокет и 16 потоков на сокет:

У lscpu команды есть несколько полезных опций, которые вы можете проверить, например:


Процессор является наиболее важным компонентом компьютера. ЦП также называют микропроцессором или просто процессором. Так же, как мозг управляет человеческим телом, ЦП контролирует все части компьютера. Следовательно, центральный процессор считается мозгом компьютера. Вы можете знать основные детали своего процессора, такие как Intel Core i3, i5, AMD и т.д. Но как насчет других деталей, таких как скорость процессора, количество ядер, архитектура, размер кеша и так далее? В этом руководстве мы обсудим все возможные способы поиска информации о процессоре в Linux с помощью различных инструментов командной строки, а также графических инструментов.

Найти информацию о процессоре в Linux

Для получения информации о процессоре в Linux доступно множество утилит (как CLI, так и GUI). Давайте посмотрим на них по очереди.

Все приведенные ниже методы протестированы в настольной системе Ubuntu 20.04 LTS.

Утилита командной строки lscpu, собирает информацию архитектуры CPU от sysfs и архитектуры конкретных библиотек, как /proc/cpuinfo. Команда lscpu собирает сведения о ЦП, такие как количество ЦП, потоков, ядер, сокетов и узлов с неоднородным доступом к памяти (NUMA). Он также получает информацию о кэшах ЦП и совместном использовании кеша, семействе, модели, bogoMIPS, порядке байтов, пошаговом режиме и т.д. Команда lscpu является частью пакета util-linux, поэтому не беспокойтесь об установке.

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

Пример вывода:


1.1. Отображение конкретной информации о процессоре, используемой lscpu в Linux

Как видите, lscpu отображает полную информацию о вашем процессоре. Вы также можете сузить результаты, используя команду grep для фильтрации определенной детали, например названия модели , как показано ниже:

Если вы хотите отобразить только модель процессора, запустите:

Точно так же вы можете найти другие сведения о ЦП, например количество ядер ЦП , как показано ниже:

1.2. Найдите поколение процессоров в Linux

Вы обратили внимание на числа (например, 2350M) после части «i3-» в приведенных выше выходных данных? Первые 2 после i3 показывают поколение процессора. В данном случае мой процессор 2-го поколения.

Чтобы узнать больше о номерах процессоров Intel, перейдите по этой ссылке .

Как я упоминал в предыдущем разделе, данные lscpuо процессоре собираются из файла /proc/cpuinfo. Итак, мы можем просто отобразить содержимое этого файла, используя команду cat для проверки сведений о процессоре в Linux.


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

Как мы видели ранее, мы также можем отфильтровать конкретные детали процессора из файла /proc/cpuinfo с помощью команды grep. Например, чтобы отобразить семейство процессоров, запустите:

Утилита lshw имеет как командную строку, так и графический интерфейс. Он предустановлен в большинстве дистрибутивов Linux. Если он не установлен по какой-либо причине, вы можете установить lshw на свой компьютер с помощью диспетчера пакетов по умолчанию. Например, выполните следующую команду для установки lshw в Debian, Ubuntu, Pop_OS!:

Чтобы просмотреть информацию о процессоре lshw, просто запустите:

Если вы хотите отображать только модель процессора, используйте опцию -short с командой lshw :

$ sudo lshw -short -class processor
H/W path Device Class Description
============================================================
/0/4 processor Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz


Lshw также имеет графический интерфейс. Запустите lshw gui из меню приложения или Терминала, выполнив следующую команду:

Дважды щелкните Portable Computer -> Motherboard -> CPU, чтобы получить полную информацию о вашем процессоре.


Утилита dmidecode извлекает информацию о аппаратных компонентов системы от таблицы DMI (Desktop Management Interface). Сначала он попытается прочитать таблицу DMI из sysfs, а затем попытается прочитать непосредственно из памяти, если доступ sysfs не удался. После нахождения таблицы DMI dmidecode проанализирует эту таблицу и отобразит информацию об оборудовании системы в удобочитаемом формате. Dmidecode предустановлен в большинстве операционных систем Linux, поэтому не будем беспокоиться об установке.

Чтобы получить информацию о процессоре с помощью dmidecode в Linux, запустите:


Inxi доступен в репозиториях по умолчанию многих операционных систем Linux и Unix. Например, в Deian, Ubuntu, Pop_OS !, мы можем установить inxi с помощью команды:

Это отобразит полную информацию о процессоре, включая количество ядер, модель процессора, кэш процессора, тактовую частоту процессора, минимальную / максимальную скорость процессора и т.д.

Hardinfo доступен в репозиториях по умолчанию, поэтому установите его с помощью диспетчера пакетов по умолчанию. В Debian, Ubuntu выполните следующую команду для установки Hardinfo:

После установки hardinfo запустите его из тире или меню. Щелкните параметр «Процессор» в разделе «Устройства» на левой панели, чтобы получить сведения о ЦП/процессоре:


По умолчанию он не предустановлен. Вы можете установить hwinfo в системах на базе Debian, используя команду:

Чтобы просмотреть информацию о процессоре с помощью hwinfo, запустите:


Если вам нужна краткая информация о ЦП, запустите:

Cpuid выводит подробную информацию о ЦП, собранную из инструкции CPUID, а также определяет точную модель ЦП из этой информации.

Он также не предустановлен по умолчанию, поэтому установите cpuid в зависимости от типа дистрибутива, который вы используете, как показано ниже.

В Debian, Ubuntu:

В системах на основе RPM, таких как Fedora:

После установки cpuid получите информацию о процессоре с помощью команды:


Как видите, Cpuid отображает гораздо более подробную информацию о вашем процессоре по сравнению с другими утилитами.

Nproc является частью GNU coreutils. Он не дает много информации о процессоре. Он только печатает количество процессоров, доступных для текущего процесса.

Вероятно, вы получите одинаковый результат в обоих случаях.

Hwloc утилита предоставляет инструменты командной строки и C API , чтобы получить иерархическое отображение ключевых вычислительных элементов, таких , как:

Убедитесь, что в вашей системе установлен hwloc:

Чтобы отобразить сведения о процессоре Linux, запустите:

Эта команда отобразит сведения о вашем процессоре в простой диаграмме, похожей на карту, как показано ниже.


Если вы хотите узнать, какую архитектуру используют процессоры, например Haswell, Sandybridge, Ivybridge, запустите:

Это несколько методов поиска информации о процессоре в Linux. Если вы знаете какие-либо другие методы получения сведений о процессоре в Linux, сообщите нам об этом в разделе комментариев ниже. Я проверю и обновлю это соответствующим образом.

Читайте также: