- Как в Linux узнать всю информацию о процессоре
- Информация о процессоре
- 1. Поставщик и модель процессора
- 2. Архитектура
- 3. Частота
- 4. Количество ядер
- Несколько процессоров
- 5. Технология Hyper threading
- Процессор с технологией hyper threading
- Утилита hwloc / lstopo
- Процессор с технологией hyper threading
- Узнаём текущую частоту процессора в Linux
- Как посмотреть текущую частоту процессора в Linux
- Оглавление
- Показ максимальной, минимальной и текущей частоты процессора с lscpu
- Частота каждого ядра процессора в Linux
- Просмотр частоты процессора независимо от дистрибутива и установленных программ
- Другие способы
- как менять/смотреть частоту процессора
- powersave и performance
- userspace
- ondemand
- conservative
Как в 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 и объем кэш-памяти. Обо всем рассказывает одна схема.
Из приведенной выше диаграммы ясно видно, что размер кэша второго уровня L2 — 4096 KB или 4MB, количество ядер — 4, количество потоков в ядре — 1.
Процессор с технологией hyper threading
Для процессора с режимом hyper threading, выдаваемая диаграмма hwloc может выглядеть следующим образом
На диаграмме показано, что размер кэша третьего уровня L3 — 8MB, количество ядер — 4, количество потоков в ядре — 2 (т. е. режим hyper threading имеется).
Источник
Узнаём текущую частоту процессора в Linux
Дата добавления: 27 июля 2012
Современные процессоры могут динамически изменять свою частоту в зависимости от степени нагрузки. Работает это так. При определённом низком уровне нагрузки процессор сбросит частоту на один шаг (например 333 МГц) и так далее, пока нагрузка на данной частоте не станет выше порога сброса частоты или не достигнуто минимально возможное для данной модели значение частоты. Когда же нагрузка на пониженной частоте превысит заданный порог нагрузки (по умолчанию это 95% загрузки процессора), то частота подымется на один шаг и так далее, аналогично механизму сброса частоты.
Получить информацию о текущей частоте проще всего из файла /proc/cpuinfo . Найдём из него информацию о частоте (строки, содержащие «MHz») с помощью команды grep:
Монитор изменения частоты процессора
В GNOME 2 есть апплет «Монитор изменения частоты процессора», который показывает текущую частоту процессора и позволяет управлять ей. Это удобно, благодаря простому графическому интерфейсу.
Дополнительно
Можно узнать доступные значения частот для вашей модели процессора и статистику времени работы на разных частотах, используя команду cpufreq-info из пакета cpufrequtils (необходимо установить этот пакет из репозитория вашего дистрибутива).
Пример (для 1 потока):
Здесь же также указывается текущая частота (current CPU frequency). В последней строке представлена статистика проработанного времени на разных частотах (только за период текущего uptime’а).
Также с помощью cpufrequtils можно изменить режим управления частотой или выставить свою частоту из доступных.
Автор: zlodeck, дата: 11 декабря 2012 , время: 03:45:37 (MSK).
А как насчет i7z?
Источник
Как посмотреть текущую частоту процессора в Linux
Оглавление
Системный монитор или программа top показывают относительную загруженность центрального процессора. Иногда нужно (или просто хочется) посмотреть частоту CPU в данный момент. В этой заметке я расскажу, как узнать, на какой частоте работает процессор в Linux, а также другие его характеристики, такие как температуру и напряжение.
Самой наглядной программой для просмотра частоты центрального процессора в реальном времени является i7z.
Установка в Ubuntu, Linux Mint, Kali Linux, Debian и их производные:
Для установки в Arch Linux, BlackArch и их производные:a
Программа постоянно обновляет данные и интерактивно показывает такие характеристики процессора для каждого ядра как:
- текущую частоту
- текущую загруженность
- напряжение в данный момент
В самом верху показана базовая частота процессора из cpuinfo, у меня на скриншоте это 2208.00Mhz.
Затем идёт настоящая частота (без учёта Turbo).
Также показан CPU Multiplier и Bus clock frequency (BCLK).
Далее идёт информация о сокетах — обычно в домашних компьютерах только один сокет, он обозначается цифрой 0. Также сказано, сколько ядер и сколько логических ядер.
Строка мультипликатор (Max TURBO Multiplier) содержит информацию о том, как умножается частота шины (Bus clock frequency (BCLK)) при Турбо ускорении (Turbo Boost) в зависимости он нагрузки на ядра. В моём скриншоте 41x/41x/40x/40x/39x/39x показывает умножение при нагрузке на соответствующее число ядер 1/2/3/4/5/6. То есть при нагрузке на 1 или 2 ядра, умножение будет 41x, соответственно максимальная частота 100.32 * 41 = 4113,12, то есть максимальная частота 4.1 Гигагерц. При нагрузке на шесть ядер: 100.32 * 39 = 3912,48, то есть максимальная частота 3.9 Гигагерц.
Real Current Frequency — это реальная текущая частота.
Далее идёт таблица со следующими полями:
- Core [core-id] — номер ядра
- Actual Freq (Mult.) — текущая частота
- C0% — Загруженность процессора в процентах
- Halt(C1)% — Работа процессора с остановками (Состояния когда >C0 означает режимы энергосбережения с холостым ходом)
- C3 % — Ядра, работающие с PLL, отключены, и кэш ядра отключён
- C6 % — Как C3 + состояние ядра сохраняется в кэше последнего уровня
- C7 % — как и C6, но глубже
- Temp — температура в данный момент на каждое ядро
- Vcore — напряжение в данный момент на каждое ядро
Данные в таблице меняются каждую секунду. [core-id] соответствует числу core-id в /proc/cpuinfo
Сообщение ‘Garbage Values’ выводиться когда считываются «мусорные» (которые невозможно интерпретировать) значения.
Внешний вид i7z основан на ncurses. Обычно программ запускается без опций, но при желании вы можете настроить ведение журнала и отключить интерфейс.
i7z поддерживает следующие опции:
Дописать файл журнала:
Вместо дозаписи, начать журнал заново (старый стирается):
Указать определённый сокет для печати:
Чтобы выводить информацию о центральном процессоре на втором сокете:
Чтобы отключюить ncurses GUI (графический интерфейс):
Пример: чтобы печать информацию о процессорах в двух сокетах и также заменить файл журнала:
Программа i7z очень наглядная и, пожалуй, самая удобная, если нужно посмотреть информацию о центральном процессоре на данный момент, но у неё есть свои недостатки. Для некоторых современных моделей неправильно определяется поколение процессора. Из-за особенностей программы показывать только ядра (а не логические ядра), при нагрузке на одно ядро может возникнуть ситуация, что это ядро будет отсутствовать в списке. То есть система явно загружена, вентилятор шумит, частоты на максимуме, но i7z показывает, что все ядра в простое. Поскольку система время от времени переключает нагрузку на другое ядро при интенсивном использовании однопоточным процессом, то активное ядро, то появляется, то пропадает в i7z. Поскольку i7z уже 5 лет не обновляется, шансов, что эти баги будут когда-либо исправлены, немного.
Показ максимальной, минимальной и текущей частоты процессора с lscpu
Используя команду lscpu, можно вывести информацию о поддерживаемом процессоре диапазоне частот, а также о том, какая частота у процессора в данный момент:
Чтобы показать только текущую частоту CPU:
Чтобы постоянно обновлять данные о текущей частоте процессора:
Частота каждого ядра процессора в Linux
Чтобы показать частоту для каждого ядра центрального процессора, выполните команду:
Если вы хотите, чтобы информация о текущей частоте постоянно обновлялась, то запустите команду:
Просмотр частоты процессора независимо от дистрибутива и установленных программ
Следующий способ является самым универсальным, должен работать на всех дистрибутивах по умолчанию:
в результате будет показываться частота для каждого ядра процессора.
Другие способы
Рассмотренных способов уже должно хватить с избытком. Если вам всё равно мало, то вот ещё. Обратите внимание, что некоторые из упомянутых программ вам нужно будет сначала установить.
С помощью lshw:
С помощью dmidecode:
Оверклокеры обращают внимание, что только команда dmidecode показывает правильные значения, если процессор разогнан.
С помощью графического аплета Conky можно получи такую наглядную картину:
Индикатор частоты процессора indicator-cpufreq:
Источник
как менять/смотреть частоту процессора
Посмотреть текущую частоту процессора в GNU/Linux нетрудно. Для этого достаточно просмотреть файл /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
cpu0 указывает на первый процессор, если процессоров несколько, то порядковые номера будут изменяться, в зависимости от их количества. Частота указывается в КилоГерцах (KHz). Для просмотра файла нужны привилегии root.
Если в системе доступно, например, 3 ядра, то можно выполнить вот этот однострочный скрипт, чтоб сразу перевести частоту из KHz в MHz:
Вот еще один вариант, как проверить текущую частоту процессора непривилегированным пользователем:
Вот эта команда покажет температуру процессора:
В ядре существуют модули, отвечающие за регуляторы или политики изменения частоты процессора. Все доступные для загруженного ядра можно посмотреть в файле /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Рассмотрим их ниже.
powersave и performance
Эти регуляторы статически устанавливают тактовую частоту процессора на минимальное (powersave) и на максимальное (performance) значение.
userspace
Этот регулятор даёт пользователю или программе в пользовательском пространстве возможность изменять тактовую частоту процессора. С помощью команды echo пользователь может внести нужное значение частоты в файл /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed или же представить возможность установить эту частоту какому-нибудь демону в пользовательском пространстве. Вносить настройку в файл scaling_setspeed необходимо для каждого из процессоров.
С регулятором userspace взаимодействуют несколько демонов, которые могут настраивать частоту процессора. Вот некоторые из них:
cpudyn (CPU dynamic frequency control): этот демон меняет частоту в соответствии с загрузкой процессора, а также, для ещё большей экономии энергии, может переводить диски в режим ожидания (standby) при отсутствии дисковой активности.
cpufreqd: это демон можно настроить на реагирование на уровень заряда батареи, тип питания (от сети или от батареи), температуру, запущенные программы, уровень использования процессора и на другие факторы.
cpuspeed: этот демон изменяет частоту в соответствии с требованиями процессора, изменением источника питания, температурой и другими данными.
powernowd: этот демон регулятора изменяет частоту процессора в соответствии с загрузкой процессора; у него четыре режима поведения, выбираемых пользователем.
ondemand
При задействованном регуляторе ondemand в каталоге cpufreq присутствует каталог ondemand. В этом каталоге имеется множество регулируемых настроек. Все файлы, доступные на запись для root, можно изменить, вписав новое значение с помощью команды echo, как показывалось ранее. Заметьте, что любые изменения в настройках регулятора ondemand будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора.
conservative
При использовании регулятора conservative в каталоге cpufreq появляется подкаталог conservative. В этом подкаталоге имеется множество настроек. Все файлы, доступные на запись для root, можно изменять, вписывая в них новое значение с помощью команды echo. Заметьте, что любые изменения в настройках регулятора conservative будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора. При этой политике, регулирование частоты происходит плавно, что сказывается благоприятнее на долговечность аккумулятора, если у вас портативное устройство.
Все доступные регуляторы можно посмотреть в /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors:
Так можно узнать текущую политику:
Политика управления частотой процессора изменяется подобным образом:
Для сохранения нужной политики управления частотой после перезагрузки существует набор служебных программ sysfsutils.
Работа этих программ основана на виртуальной файловой системе sysfs. С помощью этих программ можно управлять параметрами устройств и системы, расположенными в системной директории /sys.
Для Debian-подобных систем его установка производится следующим образом:
Источник