как узнать количество ядер процессора linux
Как в Linux узнать всю информацию о процессоре
Информация о процессоре
Подробная информация о процессоре, о которой мы будем говорить, содержит в себе сведения о количестве ядер, о наличии режима hyper threading, об архитектуре, о размере кэша и т. д. Найти в вашей системе эту информацию, относящуюся к процессору, может быть слегка затруднительным, поскольку ее нужно получать помощью разных команд.
К командам, которые мы будем использовать, относятся команды lscpu, /proc/cpuinfo и lstopo (hwloc). С их помощью можно узнать подробную информацию о ядрах и процессорах. В следующих примерах объясняется, как следует интерпретировать результаты, выдаваемые этими командами.
1. Поставщик и модель процессора
Чтобы определить поставщика и название модели процессора, выполните с помощью команды grep поиск в файле /proc/cpuinfo.
Это процессор фирмы Intel. Затем находим имя модели, которое можно использовать для поиска точных спецификаций на сайте Intel.
Это процессор «Core 2 Quad Q8400».
2. Архитектура
С помощью команды lscpu можно узнать архитектуру процессора.
Архитектура — x86_64, что означает 64 разрядную архитектуру.
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 отсутствует. В противном случае, т. е. если количество блоков обработки больше (в два раза больше) числа ядер, то режим 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 будут отличаться.
Обратите внимание на строку «Thread(s) per core: 2», указывающую, что в каждом ядре есть по 2 потока; ядер, в общей сложности, четыре. Таким образом, количество процессоров, которые видны в ОС, равно 8.
Теперь давайте взглянем на данные из /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 может выглядеть следующим образом
Как найти информацию о процессоре в Linux
Процессор является наиболее важным компонентом компьютера. ЦП также называют микропроцессором или просто процессором. Так же, как мозг управляет человеческим телом, ЦП контролирует все части компьютера. Следовательно, центральный процессор считается мозгом компьютера. Вы можете знать основные детали своего процессора, такие как Intel Core i3, i5, AMD и т.д. Но как насчет других деталей, таких как скорость процессора, количество ядер, архитектура, размер кеша и так далее? В этом руководстве мы обсудим все возможные способы поиска информации о процессоре в Linux с помощью различных инструментов командной строки, а также графических инструментов.
Найти информацию о процессоре в Linux
Для получения информации о процессоре в Linux доступно множество утилит (как CLI, так и GUI). Давайте посмотрим на них по очереди.
Все приведенные ниже методы протестированы в настольной системе Ubuntu 20.04 LTS.
Метод 1 — проверьте информацию о процессоре с помощью lscpu
Утилита командной строки lscpu, собирает информацию архитектуры CPU от sysfs и архитектуры конкретных библиотек, как /proc/cpuinfo. Команда lscpu собирает сведения о ЦП, такие как количество ЦП, потоков, ядер, сокетов и узлов с неоднородным доступом к памяти (NUMA). Он также получает информацию о кэшах ЦП и совместном использовании кеша, семействе, модели, bogoMIPS, порядке байтов, пошаговом режиме и т.д. Команда lscpu является частью пакета util-linux, поэтому не беспокойтесь об установке.
Чтобы найти информацию о процессоре в Linux с помощью команды lscpu, просто запустите ее без каких-либо параметров:
Пример вывода:
1.1. Отображение конкретной информации о процессоре, используемой lscpu в Linux
Если вы хотите отобразить только модель процессора, запустите:
1.2. Найдите поколение процессоров в Linux
Вы обратили внимание на числа (например, 2350M) после части «i3-» в приведенных выше выходных данных? Первые 2 после i3 показывают поколение процессора. В данном случае мой процессор 2-го поколения.
Метод 2 — найти информацию о процессоре в Linux с помощью файла /proc/cpuinfo
Как я упоминал в предыдущем разделе, данные lscpuо процессоре собираются из файла /proc/cpuinfo. Итак, мы можем просто отобразить содержимое этого файла, используя команду cat для проверки сведений о процессоре в Linux.
В отличие от команды lscpu, здесь будет отображаться информация о каждом ядре ЦП. Таким образом, вы получите результат намного дольше, чем lscpu.
Как мы видели ранее, мы также можем отфильтровать конкретные детали процессора из файла /proc/cpuinfo с помощью команды grep. Например, чтобы отобразить семейство процессоров, запустите:
Метод 3 — просмотр информации о процессоре с помощью lshw
Lshw (Hardware Lister) — это полнофункциональная утилита CLI, которая предоставляет подробную информацию об аппаратной конфигурации системы Linux. Он может получить подробную информацию об оборудовании, такую как точная конфигурация памяти, версия прошивки, конфигурация материнской платы, версия и скорость процессора, конфигурация кеша, скорость шины и т.д.
Утилита lshw имеет как командную строку, так и графический интерфейс. Он предустановлен в большинстве дистрибутивов Linux. Если он не установлен по какой-либо причине, вы можете установить lshw на свой компьютер с помощью диспетчера пакетов по умолчанию. Например, выполните следующую команду для установки lshw в Debian, Ubuntu, Pop_OS!:
Чтобы просмотреть информацию о процессоре lshw, просто запустите:
Lshw также имеет графический интерфейс. Запустите lshw gui из меню приложения или Терминала, выполнив следующую команду:
Метод 4 — получить сведения о процессоре с помощью dmidecode
Утилита dmidecode извлекает информацию о аппаратных компонентов системы от таблицы DMI (Desktop Management Interface). Сначала он попытается прочитать таблицу DMI из sysfs, а затем попытается прочитать непосредственно из памяти, если доступ sysfs не удался. После нахождения таблицы DMI dmidecode проанализирует эту таблицу и отобразит информацию об оборудовании системы в удобочитаемом формате. Dmidecode предустановлен в большинстве операционных систем Linux, поэтому не будем беспокоиться об установке.
Чтобы получить информацию о процессоре с помощью dmidecode в Linux, запустите:
Метод 5 — просмотр информации о процессоре с помощью inxi
Inxi — это инструмент командной строки для отображения системной информации, такой как процессор, драйверы, xorg, среда рабочего стола, ядро, версия (версии) GCC, процессы, использование оперативной памяти и много другой полезной информации.
Это отобразит полную информацию о процессоре, включая количество ядер, модель процессора, кэш процессора, тактовую частоту процессора, минимальную / максимальную скорость процессора и т.д.
Метод 6 — Распечатать информацию о ЦП с помощью hardinfo
HardInfo — это графическая утилита для сбора информации об оборудовании и операционной системе вашей системы и создания отчетов для печати в HTML или в текстовом формате.
Hardinfo доступен в репозиториях по умолчанию, поэтому установите его с помощью диспетчера пакетов по умолчанию. В Debian, Ubuntu выполните следующую команду для установки Hardinfo:
После установки hardinfo запустите его из тире или меню. Щелкните параметр «Процессор» в разделе «Устройства» на левой панели, чтобы получить сведения о ЦП/процессоре:
Метод 7 — использование hwinfo
Hwinfo — это еще одна утилита командной строки для поиска информации об оборудовании системы. Он проверяет наличие оборудования в системе Linux и отображает подробную информацию о каждом устройстве.
По умолчанию он не предустановлен. Вы можете установить hwinfo в системах на базе Debian, используя команду:
Чтобы просмотреть информацию о процессоре с помощью hwinfo, запустите:
Если вам нужна краткая информация о ЦП, запустите:
Метод 8 — использование cpuid
Cpuid выводит подробную информацию о ЦП, собранную из инструкции CPUID, а также определяет точную модель ЦП из этой информации.
Он также не предустановлен по умолчанию, поэтому установите cpuid в зависимости от типа дистрибутива, который вы используете, как показано ниже.
В системах на основе RPM, таких как Fedora:
После установки cpuid получите информацию о процессоре с помощью команды:
Как видите, Cpuid отображает гораздо более подробную информацию о вашем процессоре по сравнению с другими утилитами.
Метод 9 — использование nproc
Nproc является частью GNU coreutils. Он не дает много информации о процессоре. Он только печатает количество процессоров, доступных для текущего процесса.
Количество устройств может быть меньше количества онлайн-процессоров. Чтобы распечатать количество установленных процессоров, используйте —allфлаг:
Вероятно, вы получите одинаковый результат в обоих случаях.
Метод 10 — использование hwloc
Убедитесь, что в вашей системе установлен hwloc:
Чтобы отобразить сведения о процессоре Linux, запустите:
Эта команда отобразит сведения о вашем процессоре в простой диаграмме, похожей на карту, как показано ниже.
Бонус — Найдите семейство процессоров Intel в Linux
Если вы хотите узнать, какую архитектуру используют процессоры, например Haswell, Sandybridge, Ivybridge, запустите:
Это несколько методов поиска информации о процессоре в Linux. Если вы знаете какие-либо другие методы получения сведений о процессоре в Linux, сообщите нам об этом в разделе комментариев ниже. Я проверю и обновлю это соответствующим образом.
4 способа найти количество ядер 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, как показано ниже:
Как узнать количество ядер системы в Linux?
Я хотел узнать, сколько ядер у моей системы, поэтому я искал тот же вопрос в Google. У меня есть некоторые команды, такие как lscpu команда. Когда я попробовал эту команду, она дала мне следующий результат:
В частности, этот вывод показывает:
Что из этого указывает на ядра системы Linux?
Есть ли какая-либо другая команда, чтобы определить количество ядер, или я предполагаю, что она полностью неверна?
Вы должны смотреть на сокеты и ядра на сокет. В этом случае у вас есть 1 физический процессор (сокет), который имеет 4 ядра (ядра на сокет).
ЦП = потоков на ядро X ядер на сокет X сокетов
Вот пример с настольного компьютера:
Вывод /proc/cpuinfo должен соответствовать этой информации, например, на настольной системе выше мы видим, что есть 8 процессоров (ЦП) и 4 ядра (идентификатор ядра 0-3):
Чтобы конкретно ответить на ваш вопрос, вы говорите, сколько ядер у вас есть, умножая количество ядер на каждый сокет на количество имеющихся у вас сокетов.
Сердечники = сердечники на гнездо X розетки
Для приведенных выше примеров систем настольный компьютер имеет 4 ядра:
Пока на сервере есть 16:
Еще одна полезная утилита, dmidecode которая выводит информацию по каждому сокету. В случае серверной системы, указанной выше, мы ожидаем увидеть 8 ядер на сокет и 16 потоков на сокет:
У lscpu команды есть несколько полезных опций, которые вы можете проверить, например:
Смотрите man lscpu подробности.
Вы можете получить эту информацию по nproc(1) команде
Не требует прав root.
Чтобы ответ не вводил в заблуждение, необходимо понять несколько простых концепций компьютерной архитектуры:
Под ядром понимается набор реального исполнительного оборудования (т. Е. Каждое ядро имеет ALU, блок памяти и т. Д.)
Вы можете иметь несколько процессоров, которые разделяют одно ядро - это называется гиперпоточность.
Примеры:
Два физических сокета, каждый из которых содержит чип с 4 физическими ядрами, всего 8 ядер. Два потока могут выдавать инструкции для каждого ядра (эта машина имеет гиперпоточность), то есть к каждому ядру должны быть подключены два ЦП, что в сумме составляет 8 * 2 = 16 ЦП.
Первая машина может выполнять ровно четыре инструкции в любой момент времени. Вторая машина может выполнять от 8 до 16 инструкций в любой момент времени: 16 будет достигнуто только тогда, когда каждая пара процессоров выполняет различные типы инструкций и может совместно использовать ядро без ожидания.
9 команд для проверки информации о CPU в Linux
Информация об аппаратном обеспечении CPU
Информация о CPU (Central Processing Unit. Центральный процессор) включает в себя подробные сведения о процессоре, такие как архитектура, название производителя, модель, количество ядер, скорость каждого ядра и т.д.
В linux существует довольно много команд для получения подробной информации о CPU.
В этой статье мы рассмотрим некоторые из часто встречающихся команд, которые можно использовать для получения подробной информации о CPU.
1. /proc/cpuinfo
Файл /proc/cpuinfo содержит подробную информацию об отдельных ядрах CPU.
Каждый процессор или ядро перечислены отдельно, а различные подробности о скорости, размере кэша и названии модели включены в описание.
Чтобы подсчитать количество процессоров, используйте grep с wc
Количество процессоров, показанное в /proc/cpuinfo, может не соответствовать реальному количеству ядер процессора. Например, процессор с 2 ядрами и гиперпоточностью будет показан как процессор с 4 ядрами.
Чтобы получить фактическое количество ядер, проверьте идентификатор ядра на наличие уникальных значений
Соответственно, есть 4 разных идентификатора ядра. Это указывает на то, что существует 4 реальных ядра.
3. hardinfo
Он создаст большой отчет о многих аппаратных частях, читая файлы из каталога /proc. Информация о CPU находится в начале отчета. Отчет также может быть записан в текстовый файл.
Hardinfo выполняет несколько эталонных тестов, занимающих несколько минут, прежде чем вывести отчет на экран.
4. lshw
Производитель, модель и скорость процессора отображаются правильно. Однако из приведенного выше результата невозможно определить количество ядер в процессоре.
Чтобы узнать больше о команде lshw, ознакомьтесь с этой статьей:
5. nproc
Команда nproc просто выводит количество доступных вычислительных блоков. Обратите внимание, что количество вычислительных блоков не всегда совпадает с количеством ядер.
6. dmidecode
Команда dmidecode отображает некоторую информацию о CPU, которая включает в себя тип сокета, наименование производителя и различные флаги.
7. cpuid
Команда cpuid собирает информацию CPUID о процессорах Intel и AMD x86.
Программа может быть установлена с помощью apt на ubuntu
А вот пример вывода
8. inxi
Вывод соответствующей информации о CPU/процессоре
Чтобы узнать больше о команде inxi и ее использовании, ознакомьтесь с этой статьей:
9. Hwinfo
Она также отображает информацию о процессоре. Вот быстрый пример:
Если не использовать опцию «—short», команда отобразит гораздо больше информации о каждом ядре CPU, например, архитектуру и характеристики процессора.
Чтобы более подробно изучить команду hwinfo, ознакомьтесь с этой статьей:
Заключение
Это были некоторые команды для проверки информации о CPU в системах на базе Linux, таких как Ubuntu, Fedora, Debian, CentOS и др.
Примеры других команд для проверки информации о CPU смотрите в этой статье:
Большинство команд обрабатываются с помощью интерфейса командной строки и выводятся в текстовом формате. Для GUI интерфейса используйте программу Hardinfo.
Она показывает подробности об аппаратном обеспечении различных компонентов в простом для использования GUI интерфейсе.
Если вы знаете какую-либо другую полезную команду, которая может отображать информацию о CPU, сообщите нам об этом в комментариях ниже
Если вы хотели бы узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.
А если вам интересно развитие в этой сфере с нуля до pro, рекомендуем ознакомиться с учебной программой специализации.