Как узнать информацию о процессоре (cpu) в linux

Conclusion

You learned how to display information about the CPU architecture, core, threads, CPU version/model, vendor and other information using various Linux command line options.

This entry is 1 of 13 in the Linux CPU/Hardware Info Tutorial series. Keep reading the rest of the series:

  1. Check how many CPUs are there in Linux system
  2. Linux Find If Processor (CPU) is 64 bit / 32 bit
  3. Linux Find Out CPU Architecture Information
  4. Linux Hotplug a CPU and Disable CPU Cores At Run Time
  5. Linux Command To Find the System Configuration And Hardware Information
  6. How To Read CPUID Instruction For Each CPU on Linux With x86info and cpuid Commands
  7. Linux Display CPU Information Number of CPUs and Their Speed
  8. Linux detect or find out a dual-core cpu
  9. Stress Test CPU and Memory (VM) On a Linux / Unix With Stress-ng
  10. Linux Find Out If CPU Support Intel VT/AMD-V Virtualization For KVM
  11. Linux display each multiple SMP CPU processors utilization individually
  12. Linux Find Number of CPU Cores Command
  13. Linux Read CPU Temperature Sensor Chip Data Including Voltage and Fan Speed With lm-sensors


Get the latest tutorials on Linux, Open Source & DevOps viaRSS feed ➔   
Weekly email newsletter ➔


ADVERTISEMENT

Category List of Unix and Linux commands
Documentation help • mandb • man • pinfo
Disk space analyzers df • duf • ncdu • pydf
File Management cat • cp • less • mkdir • more • tree
Firewall Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux Desktop Apps Skype • Spotify • VLC 3
Modern utilities bat • exa
Network Utilities NetHogs • dig • host • ip • nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Package Manager apk • apt
Processes Management bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop
Searching ag • grep • whereis • which
Shell builtins compgen • echo • printf
Text processing cut • rev
User Information groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w
WireGuard VPN Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04

Архитектура процессора компьютера — что такое и как узнать?!

На момент написания поста нет четкого определения — что такое «архитектура процессора». Если посмотреть с точки зрения разработчиков программного обеспечения, то под архитектурой процессора подразумевается его способность исполнять определенный набор машинных кодов. Сегодня пока ещё большинство современных CPU для обычных компьютеров — дескотопов — относятся к семейству x86 или x32 — Intel-совместимых процессоров архитектуры IA32 (архитектура 32-битных процессоров Intel). Основа её была заложена ещё в прошлом, 20 веке компанией Intel в процессоре i80386. Однако затем, в последующих поколениях процессоров, она была дополнена и расширена компанией Intel — введены новые наборы команд MMX, SSE, SSE2 и SSE3. Но не только Интел занималась усовершенствованиями этой платформы. Сторонние производители тоже не отставали. Например, компания AMD разработала наборы команд EMMX, 3DNow! и Extended 3DNow! Но эти уже морально устаревшие процессоры потихоньку заменяют более быстрые и современных процессоры x64 (архитектура 64-битных процессоров), которые так же разрабатываются компаниями Intel и AMD. Соответственно тут добавились и новые наборы команд — EM64T, SSE 4.1 и 4.2, AES, AVX и т.д.

А вот с железячной точки зрения разработчов компьютерного оборудования — HardWare -понятие «архитектура процессора» или «микроархитектура» имеет немного другой смысл. Оно отражает основные принципы внутренней организации конкретных семейств процессоров. Так, к примеру, архитектура древних теперь уже процессоров Intel Pentium обозначалась как Р5, чуть более новых Pentium II и Pentium III — Р6, а относительно недавно устаревшие Pentium 4 относились к архитектуре NetBurst. В это же время компания AMD была вынуждена разработать собственную архитектуру — К7 для процессоров Athlon и Athlon XP, и К8 для Athlon 64.

Создание сценария bash для получения показателей

Ваша следующая задача — создать простой сценарий bash, который извлекает такие показатели, как использование ЦП и использование памяти для отдельных процессов.

Ваш скрипт можно определить как задачу cron, которая будет запускаться каждую секунду позже.

Для выполнения этой задачи у вас есть несколько кандидатов.

Вы можете запускать топ-команды каждую секунду, анализировать их с помощью sed и отправлять метрики в Pushgateway.

Сложность с top заключается в том, что он работает на нескольких итерациях, обеспечивая средние показатели с течением времени. Это не совсем то, что мы ищем.

Вместо этого мы собираемся использовать команду ps, а точнее команду ps aux .

Эта команда раскрывает использование отдельных ЦП и памяти, а также точную команду, стоящую за ними.

Это именно то, что мы ищем.

Но прежде чем идти дальше, давайте посмотрим, что ожидает Pushgateway в качестве входных данных.

Pushgateway, как и Prometheus, работает с парами ключ-значение : ключ описывает отслеживаемую метрику, а значение не требует пояснений.

Вот некоторые примеры:

Как вы можете заметить, первая форма просто описывает использование ЦП, а вторая описывает использование ЦП для процесса java.

Добавление ярлыков — это способ более точно указать, что описывает ваша метрика.

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

Напоминаем, что наш скрипт выполнит команду ps aux, проанализирует результат, преобразует его и отправит в Pushgateway с помощью синтаксиса, который мы описали ранее.

Создайте файл сценария, дайте ему права и перейдите к нему.

> touch better-top
> chmod u+x better-top
> vi better-top

Вот сценарий:

#!/bin/bash
z=$(ps aux)
while read -r z
do
var=$var$(awk '{print "cpu_usage{process=\""$11"\", pid=\""$2"\"}", $3z}');
done <<< "$z"
curl -X POST -H "Content-Type: text/plain" --data "$var
" http://localhost:9091/metrics/job/top/instance/machine

Если вам нужен тот же сценарий для использования памяти, просто измените метку cpu_usage на memory_usage и $ 3z на $ 4z

Итак, что делает этот сценарий?

Во-первых, он выполняет команду ps aux, которую мы описали ранее.

Затем он выполняет итерацию по различным строкам и форматирует их в соответствии с форматом пары значений с меткой ключа, который мы описали ранее.

Наконец, все объединяется и отправляется в Pushgateway с помощью простой команды curl.

Как видите, этот скрипт собирает все метрики для наших процессов, но выполняет только одну итерацию.

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

Позже вы можете создать службу, которая будет запускать ее каждую секунду с помощью таймера (по крайней мере, с помощью systemd).

> while sleep 1; do ./better-top; done;

Теперь, когда наши метрики отправлены в Pushgateway, давайте посмотрим, сможем ли мы изучить их в веб-консоли Prometheus.

Перейдите по адресу http: // localhost: 9090. В поле «Выражение» просто введите cpu_usage . Теперь вы должны увидеть все показатели в своем браузере.

Поздравляю! Ваши показатели ЦП теперь хранятся в Prometheus TSDB.

Скользящие или фиксированные релизы

Все активные дистрибутивы Linux выпускают новые релизы, только все по-разному. Конечно, дистрибутивы обновляются и между релизами, но пользователям привычен такой порядок, что обновления релиза получают только исправления безопасности и ошибок, а все новые возможности выпускаются новым релизом. Но существуют и другие пути. Сейчас есть два способа выпуска релизов:

  • Скользящие релизы (rolling);
  • Фиксированные релизы (fixed).

Эти способы работают немного по-разному и вам нужно понимать это прежде чем мы перейдем к версии Linux. Скользящие релизы не имеют точек выпуска нового релиза, новые возможности, исправления и улучшения постоянно добавляются в официальный репозиторий и их получают пользователи. Такой подход используется в ArchLinux, Gentoo и OpenSUSE Thumbleweed. Поэтому у таких дистрибутивов нет версий, они всегда имеют самую новую версию после того, как было выполнено обновление пакетов. Но у них есть минус — это более низкая стабильность по сравнению с фиксированными релизами, которые можно хорошо протестировать.

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

Установка различных инструментов

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

а — Установка Pushgateway

Чтобы установить Pushgateway , запустите простую команду wget, чтобы получить последние доступные двоичные файлы.

wget https://github.com/prometheus/pushgateway/releases/download/v0.8.0/pushgateway-0.8.0.linux-amd64.tar.gz

Теперь, когда у вас есть архив, извлеките его и запустите исполняемый файл, доступный в папке pushgateway.

> tar xvzf pushgateway-0.8.0.linux-amd64.tar.gz 
> cd pushgateway-0.8.0.linux-amd64 / 
> ./pushgateway &

В результате ваш Pushgateway должен запуститься в фоновом режиме .

me@schkn-ubuntu:~/softs/pushgateway/pushgateway-0.8.0.linux-amd64$ ./pushgateway &

 22806
me@schkn-ubuntu:~/softs/pushgateway/pushgateway-0.8.0.linux-amd64$ 
INFO Starting pushgateway (version=0.8.0, branch=HEAD, revision=d90bf3239c5ca08d72ccc9e2e2ff3a62b99a122e) source="main.go:65"INFO Build context (go=go1.11.8, user=root@00855c3ed64f, date=20190413-11:29:19) source="main.go:66"INFO Listening on :9091. source="main.go:108"

Оттуда Pushgateway прослушивает входящие метрики на порт 9091 .

б — Установка Prometheus

Как описано в разделе «Начало работы» на веб-сайте Prometheus, перейдите по адресу https://prometheus.io/download/ и выполните простую команду wget, чтобы получить архив Prometheus для вашей ОС.

wget https://github.com/prometheus/prometheus/releases/download/v2.9.2/prometheus-2.9.2.linux -amd64.tar.gz

Теперь, когда у вас есть архив, распакуйте его и перейдите в основную папку:

> tar xvzf prometheus-2.9.2.linux-amd64.tar.gz 
> cd prometheus-2.9.2.linux-amd64 /

Как указывалось ранее, Prometheus периодически сбрасывает «цели», чтобы собрать с них метрики. Цели (в нашем случае Pushgateway) необходимо настроить с помощью файла конфигурации Prometheus.

> vi prometheus.yml

В разделе «global» измените значение свойства scrape_interval до одной секунды.

global: 
scrape_interval: 1s # Установить интервал очистки каждую 1 секунду.

В разделе scrape_configs добавьте запись в свойство target в разделе static_configs.

static_configs:
- targets: 

Выйдите из vi и запустите исполняемый файл prometheus в папке.

Prometheus должен запуститься при запуске последней команды Prometheus. Чтобы убедиться, что все прошло правильно, вы можете перейти на http: // localhost: 9090 / graph.

Если у вас есть доступ к веб-консоли Prometheus, значит, все прошло нормально.

Вы также можете убедиться, что Pushgateway правильно настроен как цель в «Статус»> «Цели» в веб-интерфейсе.

c — Установка Grafana

И последнее, но не менее важное: мы собираемся установить Grafana v6.2. Перейдите на https://grafana.com/grafana/download/beta

Как и раньше, запустите простую команду wget, чтобы получить ее.

> wget https://dl.grafana.com/oss/release/grafana_6.2.0-beta1_amd64.deb> sudo dpkg -i grafana_6.2.0-beta1_amd64.deb

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

Вы можете проверить это, выполнив следующую команду:

> sudo systemctl status grafana-server
● grafana-server.service - Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2019-05-09 10:44:49 UTC; 5 days ago
Docs: http://docs.grafana.org

Вы также можете проверить http: // localhost: 3000, который является адресом по умолчанию для веб-интерфейса Grafana.

Теперь, когда у вас есть Grafana в вашем экземпляре, нам нужно настроить Prometheus в качестве источника данных .

Вы можете настроить свой источник данных следующим образом:

Вот и все!

Нажмите «Сохранить и проверить» и убедитесь, что ваш источник данных работает правильно.

11) perf

Perf can measure CPU performance counters, tracepoints, kprobes, and uprobes that is included in the Linux kernel, under tools/perf. perf began as a tool for using the performance counters subsystem in Linux, and has had various enhancements to add tracing capabilities. The perf tools are integrated into the Linux kernel since the 2.6 version and are based on the perf events subsystem. The perf profiler uses hardware counters to profile the application. The result of this profiler is explicit and fast. The perf utility can be found in the linux-tools package.

If you are interested in finding CPU performance for a particular ‘command’ like cp. The following perf command will profile cp while it is copying the entire directory Documents to new location (Docs).

If you want to find CPU counter statistics for a specified PID then use the following command until CTRL+C is pressed.

Find the basic CPU statistics, system wide, for 10 seconds using the following perf command. You can also omit any one of the options under -e option to be more specific.

Collect Sample on-CPU user instructions, for 5 seconds and then use perf report to view the report.

Collect sample CPU stack traces, once every 10,000 Level 1 data cache misses, for 5 seconds and then use perf report to view the report.

SSD + HDD[править]

Команда Описание
systemctl status fstrim.timer Проверить включен ли TRIM
lsblk Посмотреть подключённые жёсткие диски
lsblk -o NAME,SIZE,UUID,TYPE,MOUNTPOINT Посмотреть информацию о дисках
cat /proc/partitions Посмотреть информацию о дисках
inxi -plo Информация о разбиении диска. разделы диска
inxi -h Посмотреть флаги разделов жесткого диска
mount Посмотреть информацию о подключенных устройствах и параметрах подключения
df -H Посмотреть список партиций, их точки монтирования, использование места, тип файловой системы
df -h Узнать размер свободного пространства на разделах диска
du -hs * 2>/dev/null | sort -h Отсортировать файлы по размеру
fdisk -l Все партиции, названия устройств и геометрия hdd
hdparm -iv /dev/sda Посмотреть идентификационную информацию, собранной во время загрузки ОС
hdparm -Tv /dev/sda Измерить время чтения из кэша, для верности показателей — повторить 2-3 раза на неактивном диске
hdparm -Tt /dev/sda Сравнение времени чтения устройства. Полная статистика. Для получения значимых результатов эту операцию следует повторить 2-3 раза в неактивной системе
hddtemp -uC /dev/sda Отображение температуры в Цельсиях для винчестера /dev/sda (установочный пакет hddtemp)
hdparm -I /dev/sda Информация о диске (модель, прошивка, атрибуты и пр)
smartctl -d ata -a -i /dev/sda Информация о диске (модель, прошивка, атрибуты и пр)
smartctl -a /dev/sda Вывод SMART информация для винчестера /dev/sda (необходим пакет smartmontools)
baobab Графическая утилита для анализа места на жестком диске в GNOME
ncdu / Консольная утилита для анализа места на жестком диске
ls -lh /var/log/ Посмотреть содержимое папки с выводом в мегабайтах, килобайтах и пр.  
parted /dev/sdX print Информация о жестком диске — sdX, X заменить на букву диска — a,b,c
gdisk -l /dev/sda Покажет раздел загрузчика с кодом раздела EF00
tree -L 3 /boot Вывод структуры ввиде дерева
df -h | awk ‘$NF==»/»{printf «Disk Usage: %d/%dGB (%s)\n», $3,$2,$5}’ Расчет использования жесткого диска
e2fsck -cfpv /dev/sda1 для восстановления битых секторов жесткого диска и подождать несколько часов
whdd
find -type f -printf «%k\t%p\n» | sort -n | tail Найти десять самых больших файлов. Размер в блоках по килобайту
ls -1 /dev/sd? Получить список устройств
fdisk -l /dev/sda Посмотреть какие разделы есть на диске «sda»
Узнать, что переполняет диск
konqueror с плагинами Свободный веб-браузер и файловый менеджер, являющийся ключевым компонентом графической среды KDE
du <путь> sort -n. В альте можно отключить резервное копирование (bacula-fd) и почистить /var
gparted Графическая утилита для работы с дисками и разделами
filelight Графическое представление использования дисков/флешек
baobab Графическое представление использования дисков/флешек в Gnome
ncdu Консольный анализатор использования дисков/флешек
Жёсткие диски имеют особенные названия. В зависимости от интерфейса, через который подключён жёсткий диск, название может начинаться на:
sd — устройство, подключённое по SCSI;
hd — устройство ATA;
vd — виртуальное устройство;
mmcblk — обозначаются флешки, подключённые через картридер;
В наше время большинство блочных устройств Linux подключаются через интерфейс SCSI. Сюда входят жёсткие диски, USB-флешки, даже ATA-диски теперь тоже подключаются к SCSI через специальный переходник.
Поэтому в большинстве случаев вы будете иметь дело именно с дисками sd. Третья буква в имени диска означает его порядковый номер в системе. Используется алфавитная система.
Например sda — первый диск, sdb — второй диск, sdc — третий и так далее. Дальше следует цифра — это номер раздела на диске — sda1, sda2.

Say hello to lscpu

The lscpu command is CPU architecture information helper and can be found under Fedora Linux / RHEL / CentOS v6+ / Debian Linux v6+ and many other latest distro includes this command.
Sample outputs:

Patreon supporters only guides

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)

Join Patreon ➔

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 30
Stepping:              5
CPU MHz:               1199.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K

Warning : lscput command has bug and sometimes in Xen Dom0 kernel reports wrong data. So please use /proc/cpuinfo for verification purpose.

Управление частотой в Linux

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

  • powersave — процессор работает на минимальной частоте;
  • performance — процессор работает на максимальной частоте;
  • ondemand — динамическое изменение частоты, при появлении нагрузки резко устанавливается самая высокая частота, а при снижении нагрузки частота медленно снижается;
  • conservative — аналогично ondemand, только частота меняется более плавно;
  • userspace — использовать частоту заданную пользователем;
  • schedutil — изменение частоты на основе планировщика.

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

Затем посмотрите информацию о процессоре:

Как видите, сейчас для управления частотой используется политика ondemand. Для установки политики используйте команду frequency-set и опцию -g. Например, для performance:

Теперь частота гораздо выше, а используемая политика performance. Для того чтобы вручную менять частоту установите политику userspace:

Для установки максимальной частоты используйте опцию -u:

Для установки минимальной частоты — опцию -d:

А для изменения текущей частоты процессора — опцию -f:

Частота всё-равно будет немного колебаться, но эти колебания будут в пределах выбранного диапазона.

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

Если вы любите пользоваться графическим интерфейсом вместо команд, вам понравится утилита cpupower-gui. Она позволяет настроить все необходимые параметры в графическом интерфейсе. Для её установки выполните:

Для установки самой последней версии выполните такие команды:

После завершения установки вы сможете найти программу в главном меню. Её окно выглядит вот так:

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

В отличие от консольных команд утилита позволяет устанавливать необходимые вам значения профиля и частоты при старте программы. Для этого в программе есть два профиля Balanced и Performance. Первый использует политику Powersave, а второй — Performance. Для того чтобы выбрать профиль по умолчанию надо отредактировать конфигурационный файл /etc/cpupower_gui.conf:

Измените значение параметра Profile на нужное и этот профиль будет выбираться по умолчанию при старте программы, останется только добавить её в автозагрузку. Кроме этих двух профилей можно создавать свои в папке /etc/cpupower_gui.d/. В этой папке уже лежит пример профиля, но рассматривать этот процесс подробнее мы не будем.

Как просмотреть информацию об оборудовании Linux

Что бы узнать информацию об cpu, disks, memory, usb controllers можно воспользоваться командой lshw
Если её нет в системе то необходимо предварительно установить, она есть в репозитории rpmforge

Shell

yum install lshw

1 yum install lshw

Выполнить команду и в результате получите подобную информацию

Shell

lshw

description: Computer
width: 64 bits
capabilities: vsyscall64 vsyscall32
*-core
description: Motherboard
physical id: 0
*-generic UNCLAIMED
physical id: 123
bus info: parisc@123
*-memory
description: System memory
physical id: 0
size: 1GiB
*-cpu
product: Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
version: 6.10.9
serial: 0003-06A9-0000-0000-0000-0000
size: 3300MHz
width: 64 bits
capabilities: fpu fpu_exception wp 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 rdtscp x86-64 constant_tsc……………

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

lshw
 

descriptionComputer

width64bits

capabilitiesvsyscall64 vsyscall32

*-core

descriptionMotherboard

physical id

*-generic UNCLAIMED

physical id123

bus infoparisc@123

*-memory

descriptionSystem memory

physical id

size1GiB

*-cpu

productIntel(R)Xeon(R)CPU E3-1230V2@3.30GHz

vendorIntel Corp.

physical id1

bus infocpu@

version6.10.9

serial0003-06A9-0000-0000-0000-0000

size3300MHz

width64bits

capabilitiesfpu fpu_exception wp 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 rdtscp x86-64constant_tsc……………

Можно сократить и упорядочить вывод с помощью опции

Shell

lshw -short
H/W path Device Class Description
=========================================
system Computer
/0 bus Motherboard
/0/123 generic
/0/0 memory 1GiB System memory
/0/1 processor Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
/0/1/1.1 processor Logical CPU
/0/1/1.2 processor Logical CPU
/0/1/1.3 processor Logical CPU
/0/1/1.4 processor Logical CPU
/0/1/1.5 processor Logical CPU
/0/1/1.6 processor Logical CPU
/0/1/1.7 processor Logical CPU
/0/1/1.8 processor Logical CPU
/0/1/1.9 processor Logical CPU
/0/1/1.a processor Logical CPU
/0/1/1.b processor Logical CPU
/0/1/1.c processor Logical CPU
/0/1/1.d processor Logical CPU
/0/1/1.e processor Logical CPU
/0/1/1.f processor Logical CPU
/0/1/1.10 processor Logical CPU

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

lshw-short

H/Wpath   Device  ClassDescription

=========================================

system     Computer

/bus        Motherboard

//123generic

//memory1GiBSystem memory

//1processor  Intel(R)Xeon(R)CPU E3-1230V2@3.30GHz

//1/1.1processor  Logical CPU

//1/1.2processor  Logical CPU

//1/1.3processor  Logical CPU

//1/1.4processor  Logical CPU

//1/1.5processor  Logical CPU

//1/1.6processor  Logical CPU

//1/1.7processor  Logical CPU

//1/1.8processor  Logical CPU

//1/1.9processor  Logical CPU

//1/1.aprocessor  Logical CPU

//1/1.bprocessor  Logical CPU

//1/1.cprocessor  Logical CPU

//1/1.dprocessor  Logical CPU

//1/1.eprocessor  Logical CPU

//1/1.fprocessor  Logical CPU

//1/1.10processor  Logical CPU

Также есть возможность вывода информации в html файл

Shell

lshw -html &gt; lshw.html

1 lshw-html&gt;lshw.html

Conclusion

In this tutorial, we have explored few CPU performance monitoring tool along with their usages. Be sure to read man pages for each of them, as it also documents the usages in detail. Remember that using these tools also takes a CPU slice. For example, top takes 3%-4% of CPU while glances take 15% to 20% of CPU. So while using any one of these, you need to consider this aspect as well.  In a nutshell, you will be able to find which process is taking more CPU time, is there enough free memory, whether processes are stalled while waiting for I/O viz. disk or network access to complete read/write and much more by using a combination of few of them.

4. dmidecode

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

5. hardinfo

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

Запуск

6. i7z

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

7. inxi

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

Для запуска:

8. likwid-topology

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

9. lscpu

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

10. lshw

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

11. lstopo

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

12. numactl

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

13. x86info

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

14. nproc

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

15. hwinfo

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

Usage Examples and Syntax¶

2.1 Basic Usage

Creating, modifying, using the cpusets can be done through the cpuset
virtual filesystem.

To mount it, type:
# mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset

Then under /sys/fs/cgroup/cpuset you can find a tree that corresponds to the
tree of the cpusets in the system. For instance, /sys/fs/cgroup/cpuset
is the cpuset that holds the whole system.

If you want to create a new cpuset under /sys/fs/cgroup/cpuset:

# cd /sys/fs/cgroup/cpuset
# mkdir my_cpuset

Now you want to do something with this cpuset:

# cd my_cpuset

In this directory you can find several files:

# ls
cgroup.clone_children  cpuset.memory_pressure
cgroup.event_control   cpuset.memory_spread_page
cgroup.procs           cpuset.memory_spread_slab
cpuset.cpu_exclusive   cpuset.mems
cpuset.cpus            cpuset.sched_load_balance
cpuset.mem_exclusive   cpuset.sched_relax_domain_level
cpuset.mem_hardwall    notify_on_release
cpuset.memory_migrate  tasks

Reading them will give you information about the state of this cpuset:
the CPUs and Memory Nodes it can use, the processes that are using
it, its properties. By writing to these files you can manipulate
the cpuset.

Set some flags:

# /bin/echo 1 > cpuset.cpu_exclusive

Add some cpus:

# /bin/echo 0-7 > cpuset.cpus

Add some mems:

# /bin/echo 0-7 > cpuset.mems

Now attach your shell to this cpuset:

# /bin/echo $$ > tasks

You can also create cpusets inside your cpuset by using mkdir in this
directory:

# mkdir my_sub_cs

To remove a cpuset, just use rmdir:

# rmdir my_sub_cs

This will fail if the cpuset is in use (has cpusets inside, or has
processes attached).

Note that for legacy reasons, the “cpuset” filesystem exists as a
wrapper around the cgroup filesystem.

The command:

mount -t cpuset X /sys/fs/cgroup/cpuset

is equivalent to:

mount -t cgroup -ocpuset,noprefix X /sys/fs/cgroup/cpuset
echo "/sbin/cpuset_release_agent" > /sys/fs/cgroup/cpuset/release_agent

2.2 Adding/removing cpus

This is the syntax to use when writing in the cpus or mems files
in cpuset directories:

# /bin/echo 1-4 > cpuset.cpus         -> set cpus list to cpus 1,2,3,4
# /bin/echo 1,2,3,4 > cpuset.cpus     -> set cpus list to cpus 1,2,3,4

To add a CPU to a cpuset, write the new list of CPUs including the
CPU to be added. To add 6 to the above cpuset:

# /bin/echo 1-4,6 > cpuset.cpus       -> set cpus list to cpus 1,2,3,4,6

Similarly to remove a CPU from a cpuset, write the new list of CPUs
without the CPU to be removed.

To remove all the CPUs:

# /bin/echo "" > cpuset.cpus          -> clear cpus list

2.3 Setting flags

The syntax is very simple:

# /bin/echo 1 > cpuset.cpu_exclusive  -> set flag 'cpuset.cpu_exclusive'
# /bin/echo 0 > cpuset.cpu_exclusive  -> unset flag 'cpuset.cpu_exclusive'
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector