Как узнать информацию о процессоре (cpu) в linux
Содержание:
- Conclusion
- Архитектура процессора компьютера — что такое и как узнать?!
- Создание сценария bash для получения показателей
- Скользящие или фиксированные релизы
- Установка различных инструментов
- 11) perf
- SSD + HDD[править]
- Say hello to lscpu
- Управление частотой в Linux
- Как просмотреть информацию об оборудовании Linux
- Conclusion
- 4. dmidecode
- Usage Examples and Syntax¶
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:
- Check how many CPUs are there in Linux system
- Linux Find If Processor (CPU) is 64 bit / 32 bit
- Linux Find Out CPU Architecture Information
- Linux Hotplug a CPU and Disable CPU Cores At Run Time
- Linux Command To Find the System Configuration And Hardware Information
- How To Read CPUID Instruction For Each CPU on Linux With x86info and cpuid Commands
- Linux Display CPU Information Number of CPUs and Their Speed
- Linux detect or find out a dual-core cpu
- Stress Test CPU and Memory (VM) On a Linux / Unix With Stress-ng
- Linux Find Out If CPU Support Intel VT/AMD-V Virtualization For KVM
- Linux display each multiple SMP CPU processors utilization individually
- Linux Find Number of CPU Cores Command
- 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)
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 |
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 |
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 > lshw.html
1 | lshw-html>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'