1.8.16 Интерактивные утилиты динамического мониторинга процессов
top
htop
atop
sar
системный монитор
iotop
pmap
nmon
vmstat
dstat
Альтернативный диспетчер задач sysmontask
На нашем Youtube-канале вы можете подробнее ознакомиться с интерактивными утилитами, просмотрев видео Интерактивные утилиты динамического мониторинга процессов, а также найти много другой полезной информации.
top
top — утилита, с помощью которой можно вывести список работающих в системе процессов и информацию о них. Данная утилита установлена в РЕД ОС по умолчанию.
С утилитой top вы можете ознакомиться на нашем Youtube-канале, просмотрев видео Утилита мониторинга процессов 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 — еще одна утилита для мониторинга производительности системы.
Из man sar
:
sar - Collect, report, or save system activity information.Список опций можно получить с помощью параметра --help:
sar --help
При использовании без опций, окно вывода sar
будет примерно следующего содержания:
Где:
- %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 секунды.
dstat
dstat - инструмент для мониторинга состояния системы.
Установка в РЕД ОС 7.3:
dnf install dstat
Использование.
Отображение информации по процессу и статистики записи/чтения на диски:
python2.7 /usr/bin/dstat -fs -d --top-bio
Пример по использованию памяти:
python2.7 /usr/bin/dstat -g -l -m -s --top-mem
Потребление ресурсов процессора:
python2.7 /usr/bin/dstat -c -y -l --proc-count --top-cpu или python2.7 /usr/bin/dstat -c --top-cpu -d --top-bio --top-latency
Еще одна комбинация:
python2.7 /usr/bin/dstat --top-cpu-adv -tldnpmfs 5
Описание параметров:
- l - средняя загрузка системы;
- d - использования дисков;
- n - загрузка сетевых устройств;
- p - активность процессов;
- m - использование памяти;
- s - использование подкачки;
- 5 - интервалов в 5 секунд;
- t - вывод текущего времени;
- --top-cpu-adv - показать самый "дорогой" процесс ввода-вывода (включая pid и другую статистику).
Альтернативный диспетчер задач sysmontask
SysMonTask — утилита, которая в режиме реального времени предоставляет информацию о процессах, выполняемых на компьютере, а также используемых ими ресурсах (об оперативной памяти, процессоре и др.).
SysMonTask имеет схожий с диспетчером задач Windows интерфейс.
Более подробную информацию о работе с SysMonTask см. в нашей инструкции.
Дата последнего изменения: 02.12.2022
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.