8.11 Интерактивные утилиты динамического мониторинга процессов

top
htop
atop
sar
системный монитор
iotop
pmap
nmon
vmstat

 

top

top — утилита, с помощью которой можно вывести список работающих в системе процессов и информацию о них. Данная утилита установлена в РЕД ОС по умолчанию.

Для запуска утилиты необходимо в терминале выполнить команду:

$ top

После запуска в терминале можно увидеть вывод, примерно следующего содержания:

Где первая строка:
— текущее время (15:53:43);
— время работы системы (up 9 min);
— количество открытых пользовательских сессий (1 users);
— среднюю загрузку системы (load average: 1.39, 0.71, 0.42).

Вторая строка:
— общее количество процессов в системе (157 total);
— количество работающих в данный момент процессов (2 running);
— количество ожидающих событий процессов (115 sleeping);
— количество остановленных процессов (0 stopped);
— количество процессов, ожидающих родительский процесс для передачи статуса завершения (0 zombie).

Третья строка выводит информацию о работе процессора:
— использование центрального процессора (в процентах) пользовательскими процессам (1.7 us);
— использование центрального процессора (в процентах) системными процессами (0.3 sy);
— использование центрального процессора (в процентах) процессами с приоритетом, повышенным при помощи вызова nice (0.0 ni);
— время (в процентах), когда центральный процессор не используется (97,7 id);
— использование центрального процессора (в процентах) процессами, ожидающими завершения операций ввода-вывода (0.3 wa);
— использование центрального процессора (в процентах) обработчиками аппаратных прерываний (0.0 hi — Hardware IRQ (аппаратные прерывания));
— использование центрального процессора (в процентах) обработчиками программных прерываний (0.0 si — Software Interrupts (программные прерывания));
— количество ресурсов центрального процессора «заимствованных» у виртуальной машины гипервизором для других задач (таких, как запуск другой виртуальной машины), это значение будет равно нулю на настольных компьютерах и серверах, не использующих виртуальные машины (0.0 st — Steal Time (заимствованное время)).

Четвертая и пятая строка показывает информацию об использовании физической оперативной памяти и раздела подкачки (swap):
— общее количество памяти (в килобайтах);
— количество используемой памяти (в килобайтах);
— количество свободной памяти (в килобайтах);
— количество памяти в кэше буферов (в килобайтах).

Далее идет список процессов, отсортированных по величине использования центрального процессора:
PID – идентификатор процесса;
USER — имя пользователя, который является владельцем процесса;
PR — приоритет процесса;
NI — значение «NICE», влияющие на приоритет процесса;
VIRT — объем виртуальной памяти, используемый процессом;
RES — объем физической памяти, используемый процессом;
SHR — объем разделяемой памяти процесса;
S — указывает на статус процесса: S=sleep (ожидает событий) R=running (работает) Z=zombie (ожидает родительский процесс);
%CPU — процент использования центрального процессора данным процессом;
%MEM — процент использования оперативной памяти данным процессом;
TIME+ — общее время активности процесса;
COMMAND — имя процесса.

Далее приведено описание наиболее часто используемых интерактивных команд, которые вы можете выполнять во время работы программы:
h — вывод справки по утилите;
q (Ctrl+C) — выход из top;
A — выбор цветовой схемы;
d или s — изменить интервал обновления информации;
H — выводить потоки процессов;
k — послать сигнал завершения процессу;
W — записать текущие настройки программы в конфигурационный файл;
Y — посмотреть дополнительные сведения о процессе, открытые файлы, порты, логи и т д;
Z — изменить цветовую схему;
l — скрыть или вывести информацию о средней нагрузке на систему;
m — выключить или переключить режим отображения информации о памяти;
x — выделять жирным колонку, по которой выполняется сортировка;
y — выделять жирным процессы, которые выполняются в данный момент;
z — переключение между цветным и одноцветным режимами;
c — переключение режима вывода команды, доступен полный путь и только команда;
F — настройка полей с информацией о процессах;
o — фильтрация процессов по произвольному условию;
u — фильтрация процессов по имени пользователя;
V — отображение процессов в виде дерева;
i — переключение режима отображения процессов, которые сейчас не используют ресурсы процессора;
n — максимальное количество процессов, для отображения в программе;
L — поиск по слову;
<> — перемещение поля сортировки вправо и влево.

Для получения более подробной справки необходимо нажать клавишу «h» во время работы утилиты.

htop

htop представляет собой продвинутый монитор процессов, аналог top. В отличие от top, htop показывает сразу все процессы в системе, можно прокрутить список с помощью колесика мыши. Также показывает время непрерывной работы, использование процессоров и памяти. htop написан на языке Си и использует для отображения библиотеку Ncurses.

Устанавливается командой:
для РЕД ОС версии 7.1 или 7.2:

$ sudo yum install htop

для РЕД ОС версии 7.3 и старше:

$ sudo dnf install htop

Для запуска утилиты необходимо в терминале выполнить команду:

$ htop

После запуска в терминале можно увидеть вывод, примерно следующего содержания:

Названия столбцов аналогичны выводу команды top.

На нижней панели интерфейса отображены основные действия. Переключаться между процессами можно кнопками «Вверх» и «Вниз». При нажатии F7 и F8 на выбранном процессе изменяется приоритет вниз и вверх соответственно.

atop

atop — интерактивный полноэкранный монитор производительности. Является аналогом top, но в отличие от него выводит только новые изменения об активных системных процессах. Основным преимуществом утилиты atop является функция ведения логов.

Устанавливается командой:
для РЕД ОС версии 7.1 или 7.2:

$ sudo yum install atop

для РЕД ОС версии 7.3 и старше:

$ sudo dnf install atop

Для запуска утилиты необходимо в терминале выполнить команду:

$ atop

После запуска в терминале можно увидеть вывод, примерно следующего содержания:

Описание столбцов вывода atop:

PID — идентификатор процесса;
RUID — реальный UID, под которым обрабатывается процесс;
EUID — эффективный UID, под которым обрабатывается процесс (Обычно реальный и эффективный идентификаторы совпадают, т.е. процесс имеет в системе те же права, что и пользователь, запустивший его.);
THR — общее количество потоков для процесса;
SYSCPU — потребление CPU за последний интервал в режиме system. (обычно системные вызовы);
USRCPU — потребление CPU за последний интервал в режиме user;
VGROW — рост виртуальной памяти в течении последнего интервала;
RGROW — резидентный(реальный, занятый процессом ОП) рост памяти в течении последнего интервала. Может быть отрицательным, если процесс выгружается из памяти в swap;
RDDSK — показывает кол обращений к физическому диску для считывания с него данных(минуя кеш);
без установленного патча — количество данных считаные с диск(минуя кеш);
WRDSK — показывает кол обращений к физическому диску для записи на него данных(минуя кеш);
ST — статус процесса (N в первой позиции говорит, что процесс был запущен во время последнего интервала. Вторая позиция показывает закончился ли процесс за время последнего интервала: E — exit, S — прекращено, C — прекращено но остался core dump);
EXC — код выхода процесса;
S — состояние процесса. (S=sleep (ожидает событий) R=running (работает) Z=zombie (ожидает родительский процесс);
CPUNR — идентифицирует CPU который обрабатывает процесс;
CPU — процент занятости выбранного ресурса;
CMD — имя процесса.

Далее приведено описание наиболее часто используемых интерактивных команд, которые вы можете выполнять во время работы программы:

m — отсортирует процессы по занятой памяти;
d — отсортирует процессы по использованию диска;
n — отсортирует процессы по использованию сети (доступно только с установленным патчем);
v — покажет более подробную информацию о процессах (пользователя, дату и время начала процесса);
u — отсортирует таблицу по пользователям. Использование shift+(d,m,n) выстроит текущий список по выше указанным параметрам;
i — изменение времени проверки, по умолчанию 10 секунд;
g — вернет все в дефолтный вывод;
c — вывести полный путь запущенного процесса (столбец COMMAND).

Для посуточного ведения логов необходимо отредактировать конфиг atop

vi /etc/sysconfig/atop

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

# Имя файла логов

OUTFILE="$LOGPATH/$CURDAY.log"

Общий вид конфига будет следующего содержания:

# sysconfig atop
#

# Current Day format
CURDAY=`date +%Y%m%d`
# Log files path
LOGPATH=/var/log/atop
# Binaries path
BINPATH=/usr/bin
# PID File
PIDFILE=/var/run/atop.pid
# interval (default 10 minutes)
INTERVAL=600
# Имя файла логов
OUTFILE="$LOGPATH/$CURDAY.log"

По умолчанию atop делает снимок раз в 10 минут, это значение регулируется параметром INTERVAL в конфиге /etc/sysconfig/atop, указывается в секундах, при необходимости поменяйте данный параметр.

После внесения изменений перезапустите atop:

sudo systemctl restart atop.service

Для просмотра дневного лога необходимо в терминале выполнить команду:

atop -r /var/log/atop/atop_20201009

где /var/log/atop/atop_20201009 путь до нужного лога.

Для навигации по времени в дневном логе используются клавиши:

t — перейти вперед по времени

Shift + t — перейти назад по времени

Для остановки сбора логов необходимо выполнить:

sudo systemctl stop atop.service

sar

sar — еще одна утилита для мониторинга производительности системы.

Список опций можно получить с помощью -h

sar -h

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

Где:

%user — процент времени CPU, затраченного на выполнение приложений на уровне
пользователя;
%nice — процент времени CPU, затраченного на выполнение приложений на уровне пользователя с установленным приоритетом nice;
%system — процент времени CPU, затраченного на выполнение приложений на уровне ядра;
%iowait — процент времени, затраченное CPU на ожидание завершения операций ввода/вывода;
%steal — процент времени, заимствованное у виртуальной машины (точнее – у виртуального процессора этой машины)  ее гипервизором для решения других задач (например — на работу другой виртуальной машины);
%idle — процент времени бездействия процессора.

Системный монитор.

Утилита «системный монитор» — аналоги диспетчера задач в Windows.

Для Cinnamon необходимо установить отдельно:
для РЕД ОС версии 7.1 или 7.2:

sudo yum install gnome-system-monitor

для РЕД ОС версии 7.3 и старше:

sudo dnf install gnome-system-monitor

Расположение утилиты в Cinnamon:

Графический интерфейс утилиты интуитивно понятен, вся информация распределена по четырем вкладкам (Сinamon — 3 вкладки). Выглядит следующим образом:

Вкладка «Система» — выводится базовая минимальная информация о системе.
Вкладка «Процессы» — можно просматривать и управлять, работающими процессами. Каждый процесс можно приостановить, остановить, изменить приоритет.
Вкладка «Ресурсы» — утилита выводит в виде графиков информацию в реальном времени о ресурсах использования процессора, использование оперативной памяти и файла подкачки, и использование сети.
Вкладка «Файловые системы» — отображает информацию о имеющихся устройствах хранения информации.

iotop

iotop — утилита для вывода данных по использованию жесткого диска
Для запуска утилиты необходимо в терминале выполнить команду:

iotop

После запуска в терминале можно увидеть вывод, примерно следующего содержания:

Где:
TID — ID процесса
PRIO — приоритет процесса
USER — имя пользователя, от которого запущен процесс
DISK READ — скорость чтения с диска
DISK WRITE — скорость записи на диск
SWAPIN — процент в свап
IO — процент напрямую
COMMAND – название процесса
Основные параметры команды:
-o — показ всех активных процессов.
-b — активация интерактивного режима (нужно, например, для логгирования).
-n — параметр, который задает количество проверок непосредственно перед выходом.
-d — параметр, который задает интервал между проверками (секунды).
-p — PID “отслеживаемого” процесса.
-u — имя “отслеживаемого” пользователя.
-P — показ исключительно процессов
-k — показ данных в KB.
-t — добавление отображения времени выполнения проверки.
-q (-qq, —qqq) — уменьшение числа показываемых данных.
iotop поддерживает поддерживает некоторое управление с клавиатуры:
стрелки влево-вправо — изменить сортировку колонок;
r — изменить сортировку строк в выбранной колонке на обратную (a-z > z-a);
i — изменить nice процесса (утилитой ionice).

pmap

Команда pmap предоставляет подробную карту памяти, используемой процессом. Для работы с этой командой необходимо сначала найти идентификатор нужного процесса. Его можно получить командой ps, или даже командой top, если речь идет о процессе, потребляющем много процессорного времени.
Для запуска утилиты необходимо в терминале выполнить команду:

pmap *параметр* * идентификатор процесса*

Например:

Основные параметры:
-x — эта опция используется для отображения карты памяти в расширенном формате.
-p — эта опция используется для отображения полного пути к файлам.
-d — эта опция используется для отображения формата устройства.
-q — эта опция используется для игнорирования имен столбцов при отображении отчета карты памяти.
-A — эта опция используется для отображения результатов в заданном диапазоне. Обратите внимание, что аргументы low и high — это одна строка, разделенная запятой.
-XX — эта опция используется для отображения всего, что предоставляет ядро.
-n — эта опция используется для создания новой конфигурации.
-c — эта опция используется для чтения конфигурации по умолчанию.
-h — эта опция используется для отображения текста справки.
-v — эта опция используется для отображения информации о версии и выхода.

nmon

Это это утилита измерения и настройки производительности для системных администраторов. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах (версия Linux и процессоры).
Устанавливается командой:
для РЕД ОС версии 7.1 или 7.2:

sudo yum install nmon

для РЕД ОС версии 7.3 и старше:

sudo dnf install nmon

Для запуска утилиты необходимо в терминале выполнить команду:
nmon
После запуска в терминале можно увидеть вывод, примерно следующего содержания:

Для отображения информации по определенному ресурсу используются следующие клавиши:
c = CPU — Показывает нагрузку каждого ядра процессора и среднюю нагрузку процессора, загруженность системой, пользователем и ожидание.
m = Memory — Показывает общее количество оперативной памяти, занятой в мегабайтах и процентах, файла подкачки, кэшированной памяти, буфера и другу информацию о состоянии памяти.
d = Disks — Показывает информацию о состоянии дисков и их разделов (информация файла /proc/diskstats). Информация представлена в виде таблицы и графика, в котором показаны имя физического диска и томов, количество занятой памяти, текущее чтение и запись с раздела диска (в килобайтах), для каждого раздела существует график со шкалой от 0 до 100 процентов, для визуальной наглядности загруженности дисков. Также присутствует информация о суммарной скорости чтения и записи.
r = Resources — Показывает информацию о версии и типе ядра, процессоре, архитектуре компьютера, операционной системе и ее версии.
k = Kernel — Показывает информацию о ядре в виде таблицы, запущенных очередях, форках, прерываниях, переключениях. Также показывает среднюю нагрузку, холостой ход, длительность полной работы системы и средней нагрузки ядра на процессор.
j = Filesystems — Показывает информацию о файловой системе в виде таблицы, имя раздела (путь к папке), полный размер (MB), свободное и занятое место (MB), тип файловой системы и точка монтирования.
n = Network — Показывает информацию о сетевых интерфейсах, количестве и размеру отправленных/полученных пакетов, также уведомляет об сетевых ошибках в виде аккуратной таблицы.
N = NFS — Показывает информацию о сетевой файловой системе (NetworkFileSystem), загруженности сети, клиентом и сервером, в моем случае NFS версии 2 и 3.
t = Top processes — Показывает список процессов в виде таблицы (очень похоже на команду top), столбцы: PID процесса, нагрузка на процессор, количество занятой оперативной памяти и т. д.
V = Virtual memory — Показывает информацию о виртуально памяти, в частности о разделе подкачки.
v = Verbose hints — Показывает информацию о ресурсах в плане безопасности, степень предупреждения и опасности (в процентах).
l = CPU long-term — Показывает наглядный график загруженности процессора.

vmstat

vmstat – утилита для определения производительности системы. Она является эффективным средством для оценки необходимого объема ресурсов, предоставляя информацию о загруженности процессора, интенсивности операций дискового ввода-вывода и использовании оперативной памяти.
Устанавливается командой (если утилита не установлена):
для РЕД ОС версии 7.1 или 7.2:

sudo yum install sysstat

для РЕД ОС версии 7.3 и старше:

sudo dnf install sysstat

Простой запуск без ключей будет выглядеть так:

vmstat


Значения каждой колонки:
Procs
r: количество запущенных процессов (работающих или ожидающих выполнения).
b: количество спящих процессов.
Memory
swpd: объем используемой виртуальной памяти.
free: объем свободной памяти.
buff: количество памяти, используемой в качестве буферов.
cache: объем памяти, используемой в качестве кеша.
inact: количество неактивной памяти (опция -a).
active: количество активной памяти. (опция -a)
Swap
si: объем памяти, выгруженный с диска (/s).
so: объем памяти, перенесенный на диск (/s).
IO
bi: блоки, полученные от блочного устройства (blocks/s).
bo: блоки, отправленные на блочное устройство (blocks/s).
System
in: количество прерываний в секунду, включая часы.
cs: количество переключений контекста в секунду.
CPU
Здесь проценты от общего времени процессора.
us: время, потраченное на запуск кода, не относящегося к ядру (время пользователя).
sy: время, потраченное на выполнение кода ядра (системное время).
id: время бездействия. До версии Linux 2.5.41 это включает время ожидания ввода-вывода.
wa: время, проведенное в ожидании ввода/вывода
st: время, украденное из виртуальной машины.

Опции vmstat

-a — переключение колонки memory в active/inactive значение вместо buff/cache (active — память, реально используемая в данный момент определённым процессом, inactive — память, выделенная ранее какому-то процессу, которого уже нет);
-f — информация о количестве системных вызовов fork, vfork и rfork, выполненных с момента старта системы, и количество страниц виртуальной памяти, задействованных каждым из них;
-m — использование динамической памяти ядра, выделенной с использованием malloc;
-n — задаёт интервал выполнения в секундах;
-s — изменение вида отображение результатов (в две колонки);
-d — статистика использования дисков;
-w — увеличивает визуальный размер поля для больших объемов;
-p [partition name] — с указанием имени раздела, информация по конкретном разделу (read/writes);
-t – добавляление временной метки к каждой выходной строке;
-d – отображение статистики диска
-D – сделать отчет об активности диска;
-S [k | K | m | M] — с указанием в чем выводить информацию (килобиты, килобайты, мегабиты, мегабайты соответственно);
-V — версия vmstat.
Кроме того, после указания опций можно задать две цифры — интервал между выполнением, и количество повторов:

vmstat 2 5 -t

vmstat выполнен 5 раз с интервалом в 2 секунды.

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email