Как посмотреть ресурсы linux

Обновлено: 05.07.2024

В данной статье пойдет речь о способах сбора сведений об оборудовании компьютера, который находится под управлением операционных систем семейства UNIX, такие как Linux и BSD. Также, будет немного затронута часть получения системной информации. Действия будут выполняться из командной строки без графической оболочки — их можно выполнить, подключившись к компьютеру удаленно по SSH.

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

Команды для получения данных о процессоре.

1. lscpu (Linux)

Команда показывает информацию о характеристиках процессора в удобном виде:

* больше всего нас интересует:

  • Architecture — архитектура процессора — 32 бит или 64.
  • Core(s) per socket — количество ядер на процессор.
  • Socket(s) — количество физических/виртуальных процессоров.
  • CPU(s) — суммарное количество процессорных ядер.
  • Model name — модель процессора.

2. sysctl -a (FreeBSD)

Команда отображает множество данных, поэтому добавляем фильтр:

hw.model: Intel(R) Xeon(R) CPU X5690 @ 3.47GHz
hw.machine: amd64
hw.ncpu: 2

* на самом деле, команда sysctl работает и в Linux, но формат вывода менее удобен, по сравнению с вышерассмотренной lscpu.

3. Файл /proc/cpuinfo (Linux)

Позволяет увидеть подробную информацию по каждому ядру:

Команда для подсчета количества ядер:

cat /proc/cpuinfo | grep processor | wc -l

4. Температура процессора

Linux

Сначала необходимо установить утилиту.

yum install lm_sensors

apt-get install lm-sensors

После установки утилиты выполняем:

FreeBSD

Загружаем необходимый модуль:

* для автоматической его загрузки добавляем в файл /boot/loader.conf строку coretemp_load="YES"

sysctl -a | grep temperature

Информация об оперативной памяти

1. Файл /proc/meminfo (Linux)

MemTotal: 8010284 kB
MemFree: 1058580 kB
MemAvailable: 2791616 kB
Buffers: 1884 kB
Cached: 1754092 kB
SwapCached: 122280 kB
Active: 4330296 kB
Inactive: 2006792 kB
Active(anon): 3623768 kB
Inactive(anon): 983120 kB
Active(file): 706528 kB
Inactive(file): 1023672 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 597684 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 4466532 kB
Mapped: 92808 kB
Shmem: 25776 kB
Slab: 408732 kB
SReclaimable: 308820 kB
SUnreclaim: 99912 kB
KernelStack: 7312 kB
PageTables: 23276 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5053712 kB
Committed_AS: 3770324 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 159328 kB
VmallocChunk: 34359341052 kB
HardwareCorrupted: 0 kB
AnonHugePages: 3248128 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 257984 kB
DirectMap2M: 8130560 kB

* чаще всего, самое важное:

  • MemTotal — общий объем оперативной памяти.
  • MemFree — объем памяти, который не используется системой.
  • Buffers — память, которая в данным момент ожидает записи на диск.
  • Cached — объем, задействованный под кэш чтения с диска.
  • MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
  • SwapTotal — объем файла подкачки.
  • SwapFree — свободный объем файла подкачки.

* Объем используемой памяти = MemTotal – MemFree - Cached - Buffers.

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

2. free (Linux)

Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:

total used free shared buff/cache available
Mem: 3,7G 568M 378M 193M 2,8G 2,6G
Swap: 4,0G 94M 3,9G

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

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

Как посмотреть загрузку процессора в Linux

1. Утилита htop

Самый простой способ узнать насколько процессор загружен в данный момент - воспользоваться утилитой htop. Она показывает не только процент загрузки по каждому ядру процессора отдельно, но и позволяет найти процессы, которые нагружают систему больше всего. Для установки htop в Debian или Ubuntu выполните:

sudo apt install htop

А в CentOS или REHL:

sudo yum install htop

Главное окно программы выглядит вот так:


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

2. Файл /proc/loadavg

Если надо сориентироваться какая была нагрузка на процессор в последнее время, тут htop не поможет. Можно воспользоваться файлом /proc/loadavg. Его создаёт ядро и в нём содержится информация о средней нагрузке за одну, пять и пятнадцать минут. Но обратите внимание, данные, находящиеся в этом файле не такие однозначные. Во первых, это не проценты, во вторых, они отображают не нагрузку на процессор, а нагрузку на систему в целом.

Первые три значения в этом файле означают среднее количество процессов или потоков, которые выполняются, находятся в очереди на выполнение или ждут завершения операций ввода/вывода за 1, 5 и 15 минут. Вот:


Обычно, если значение больше единицы - значит нагрузка уже большая и надо разбираться почему. Если значение за минуту меньше значений за пять и пятнадцать минут - нагрузка падает, если больше - растёт. Таким образом можно немного сориентироваться насколько загружена ваша система. Эти значения можно использовать для общего ориентирования или отправки уведомлений на почту, а для разбора полётов уже применять другие метрики и программы.

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

3. Утилита mpstat

Утилита mpstat позволяет посмотреть подробную статистику по использованию процессора. Можно посмотреть не только информацию по каждому из ядер, но и куда используются ресурсы - на ввод/вывод, ядро или программы пространства пользователя. Для установки программы в Ubuntu или Debian выполните:

sudo apt install sysstat

В CentOS или REHL:

sudo yum install sysstat

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


А для просмотра подробностей по каждому ядру процессора используйте опцию -P с параметром ALL:


Вот значения колонок в выводе этой программы:

  • CPU - номер ядра процессора;
  • %usr - потребление программами пространства пользователя;
  • %nice - потребление ресурсов в процентах программами в пространстве пользователя с повышенным приоритетом;
  • %sys - потребление ресурсов процессора ядром;
  • %iowait - затраты на ожидание ввода/вывода;
  • %irq - ресурсы, потраченные на прерывания для работы с аппаратным обеспечением;
  • %soft - ресурсы, потраченные на программные прерывания;
  • %steal - украденные процессорные ресурсы, актуально для виртуальных машин;
  • %guest - ресурсы, потраченные на работу виртуального процессора;
  • %idle - неиспользованные ресурсы.

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

4. Команда nmon

Утилита nmon позволяет выводить данные, в виде, похожем на htop, но только немного подробнее. Для установки её в Ubuntu и Debian выполните:

sudo apt install nmon

Для установки в CentOS или REHL:

sudo yum install nmon

После запуска надо нажать кнопку c для того чтобы отобразить информацию о нагрузке на ядра процессора:


Здесь кроме наглядной шкалы по каждому ядру выводится информация в процентах по таким показателям:

  • User% - ресурсы, потраченные программами в пространстве пользователя;
  • Sys% - ресурсы, потраченные ядром;
  • Wait% - ресурсы, которые идут на ожидание ввода/вывода;

Здесь уже можно сориентироваться насколько всё загружено и в чём проблема.

5. CoreFreq

Если всей полученной ранее информации о производительности вам мало, можно воспользоваться утилитой CoreFreq. Её нет в официальных репозиториях, поэтому придется собирать программу из исходников. Но зато она имеет свой модуль ядра, который устанавливает свои счетчики производительности в ядре и возвращает утилите наиболее подробные данные. Сначала установите необходимые компоненты. В Ubuntu:

sudo apt install dkms git libpthread-stubs0-dev

В CentOS или REHL:

sudo yum group install 'Development Tools'

Затем скачайте репозиторий утилиты с GitHub и соберите её:

Загрузите модуль ядра такой командой:

sudo insmod corefreqk.ko

Запустите её сервис:

Затем запускайте программу:


Вверху программы отображается информация о процессоре, ниже шкалы с загруженностью каждого ядра, а её ниже различные показатели по каждому ядру: частота - Freq, ускорение - Turbo, C0-C7 - значения состояний C-State процессора. В данном примере, большинство ядер процессора работают на минимальной частоте и большую часть времени находятся в состоянии C1. Это состояние означает, что ядро не активно, но может в любой момент перейти к выполнению инструкций. Состояние C0 - означает, что ядро активно и выполняет какие-то действия.

С помощью этой утилиты вы сможете узнать максимально подробную информацию о загрузке процессора и о самом процессоре в целом.

Выводы

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

В данной статья я расскажу вам про 10ть команд Linux с помощью которых можно собрать информацию о системе и оборудовании.

1. Как просмотреть информацию о системе linux

Что бы определить системное имя выполните команду

Что бы узнать имя компьютера в сети его hostname

Что бы узнать версию ядра

Что бы узнать релиз ядра

Что бы определить разрядность ОС

Всю эту информацию можно получить одной командой

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

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

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

product : Intel ( R ) Xeon ( R ) CPU E3 - 1230 V2 @ 3.30GHz 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 . . . . . . . . . . . . . . .

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

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

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

3. Как получить информацию о CPU

Что бы получить информацию о CPU можно воспользоваться командами

Результат команды будет следующим

model name : Intel ( R ) Xeon ( R ) CPU E3 - 1230 V2 @ 3.30GHz flags : fpu 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 lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

4. Как получить информацию об устройствах Linux

Что бы получить инфо о блочных устройствах таких как жесткие диски, флэшки и т.п. используйте команду lsblk
Пример вывода команды

Для большей информации используйте опцию lsblk -a

5. Как получить информацию о USB контролере

Команда lsusb покажет информацию об usb контролере и устройствах подключенных к нему

Bus 001 Device 001 : ID 1d6b : 0002 Linux Foundation 2.0 root hub Bus 003 Device 001 : ID 1d6b : 0003 Linux Foundation 3.0 root hub Bus 002 Device 005 : ID 0bda : b728 Realtek Semiconductor Corp . Bus 002 Device 003 : ID 0bda : 0129 Realtek Semiconductor Corp . RTS5129 Card Reader Controller Bus 002 Device 002 : ID 045e : 00cb Microsoft Corp . Basic Optical Mouse v2 . 0 Bus 002 Device 001 : ID 1d6b : 0002 Linux Foundation 2.0 root hub

Используя опцию lsusb -v можно получить информацию об usb устройствах

6. Как получить информацию по PCI устройствам.

PCI устройства могут включать usb порты, графические карты, сетевые адаптеры.

00 : 00.0 Host bridge : Intel Corporation Haswell - ULT DRAM Controller ( rev 0b ) 00 : 02.0 VGA compatible controller : Intel Corporation Haswell - ULT Integrated Graphics Controller ( rev 0b ) 00 : 03.0 Audio device : Intel Corporation Haswell - ULT HD Audio Controller ( rev 0b ) 00 : 14.0 USB controller : Intel Corporation Lynx Point - LP USB xHCI HC ( rev 04 ) 00 : 1b.0 Audio device : Intel Corporation Lynx Point - LP HD Audio Controller ( rev 04 ) 00 : 1c.0 PCI bridge : Intel Corporation Lynx Point - LP PCI Express Root Port 3 ( rev e4 ) 00 : 1c.3 PCI bridge : Intel Corporation Lynx Point - LP PCI Express Root Port 4 ( rev e4 ) 00 : 1c.4 PCI bridge : Intel Corporation Lynx Point - LP PCI Express Root Port 5 ( rev e4 ) 00 : 1f.0 ISA bridge : Intel Corporation Lynx Point - LP LPC Controller ( rev 04 ) 00 : 1f.2 SATA controller : Intel Corporation Lynx Point - LP SATA Controller 1 [ AHCI mode ] ( rev 04 ) 00 : 1f.3 SMBus : Intel Corporation Lynx Point - LP SMBus Controller ( rev 04 ) 01 : 00.0 Ethernet controller : Realtek Semiconductor Co . , Ltd . RTL8111 / 8168 / 8411 PCI Express Gigabit Ethernet Controller ( rev 10 ) 02 : 00.0 Network controller : Realtek Semiconductor Co . , Ltd . RTL8723BE PCIe Wireless Network Adapter 03 : 00.0 3D controller : NVIDIA Corporation GM108M [ GeForce 840M ] ( rev a2 )

С опцией lspci -t вывод информации будет в виде дерева. С опцией lspci -v более детальная информация.

7. Как получить информацию о SCSI устройствах

Что бы просмотреть все scsi/sata можно воспользоваться командой lsscsi, если данной команды у вас нет, то установите:

В этом посте я хочу обсудить средства мониторинга, которыми я пользуюсь в повседневной работе. Все эти утилиты ставятся простой командой: apt-get install <название_утилиты>, поэтому заострять на этом внимание я не буду. Также не вижу особого смысла расписывать отображаемые данные. Лучше один раз поставить их и увидеть всё самому, чем смотреть на скриншоты. 🙂

Для мониторинга общего состояния серверов я пользуюсь прекрасной системой:

Munin

Я уже писал про установку munin-ноды. Сервер, где собираются данные со всех серверов, настраивается не менее просто. Смотрим файл /etc/munin/munin.conf и добавляем в него сервера, с которых будет собираться информация.

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

iotop

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

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

iftop

Монитор сетевых интерфейсов. Собирает информацию о сетевом трафике и позволяет найти ответ на извечный вопрос «почему сеть так тормозит?» 🙂

dnstop

Монитор DNS-трафика. С его помощью можно увидеть, информация о каких доменах запрашивается, насколько успешно это выполняется и какие ошибки возникают в работе DNS.

mytop

Неплохая утилита для мониторинга производительности MySQL. Отображает количество подключений, статистику запросов, что в итоге помогает понять что именно занимает больше всего времени в работе MySQL.

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