Мониторинг производительности системы с помощью утилиты atop
Atop — популярный интерактивный монитор производительности. Является аналогом утилиты top, отличие состоит в том, что в atop выводятся только новые изменения об активных системных процессах, однако при этом есть функция ведения логов.
Окружение
МСВСфера АРМ/Сервер версии 8.x.
МСВСфера АРМ/Сервер версии 9.x.
МСВСфера АРМ/Сервер версии 10.x.
Установка и запуск atop
Примечание
Утилита atop доступна в репозитории EPEL. Поэтому для установки утилиты необходимо добавить упомянутый репозиторий.
Для запуска утилиты используйте команду:
$ atop
Описание интерфейса atop
Интерфейс atop выглядит как показано на снимке экрана:

Статистика процессов
Верхняя строка PRC отображает статистику процессов:
sys
— время, затраченное процессами в режиме ядра;user
— время, затраченное процессами в режиме пользователя;proc
— общее количество процессов в системе;trun
— количество процессов, находящихся в состоянии выполнения;tslpi
— количество процессов, ожидающих ресурсов в спящем режиме;tslpu
— количество процессов, ожидающих ресурсов в интерактивном режиме;tidle
— количество процессов, находящихся в состоянии простоя;zombie
— количество процессов-зомби;clones
— количество процессов, созданных с момента последнего замера;exit
— количество завершённых процессов.
Мониторинг загруженности центрального процессора компьютера/сервера
Строка CPU отображает статистику производительности всего процессора. В случае, когда в компьютере/сервере используется многоядерный процессор, в вывод добавляются строки cpu, которые отображают статистику производительности каждого отдельного ядра.
sys
— использование процессора в режиме ядра (системные задачи);user
— использование процессора в режиме пользователя;irq
— использование процессора на обработку прерываний;idle
— время простоя процессора;wait
— время ожидания ввода/вывода;steal
— процессорные затраты гипервизора;ipc
— количество инструкций на такт;cycl
— средняя тактовая частота;curf
— текущая частота процессора.
Строка CPL отображает статистику загрузки процессора.
numcpu
— количество доступных CPU;avg1/avg5/avg15
— средняя загрузка системы за последние 1, 5 и 15 минут;csw
— количество переключений контекста;intr
— количество аппаратных прерываний.
Мониторинг памяти
Строка MEM отображает потребление физической памяти.
tot
— общий объём памяти;free
— свободная память;avail
— доступная память;cache
— используемая память под кэш;dirty
— объём данных в памяти, которые должны быть записаны на диск;slab
— объём памяти, используемой под SLAB-кэш;shmem/shrss/shswp
— объём используемой общей памяти (shared memory);pgtab
— используемая память под таблицы страниц.
Строка SWP отображает потребление SWAP-памяти (подкачка).
tot
— общий объём пространства подкачки (swap);free
— свободный объём пространства подкачки (swap);swcac
— объём памяти, кэшируемой в пространстве подкачки (swap);zswap/zstor
— объём памяти в zswap/zstor;vmcom
— используемая виртуальная память;vmlim
— лимит виртуальной памяти.
Строка PAG отображает статистику виртуальной памяти.
scan/steal/stall/compact
— данные по работе системы виртуальной памяти (сканирование страниц, перехваты, остановки, компактирование);pgin/pgout
— количество страниц, записанных в память/выгруженных из неё;numamig/migrate
— данные по миграции страниц в NUMA;oomkill
— количество завершений процессов из-за недостатка памяти.
Статистика уровня ресурсного давления на CPU
Метрика PSI (Pressure Stall Information) отражает снижение уровня ресурсного давления, что свидетельствует об уменьшении временных интервалов, в течение которых исполняемые процессы испытывали дефицит вычислительных ресурсов центрального процессора.
cpusome/memsome/memfull/iosome/iofull
— метрики давления на CPU, память и ввод/вывод.
Мониторинг устройств хранения данных
Строка LVM показывает статистику использования логических томов. Строка DSK отображает статистику физических дисков.
busy
— уровень загрузки тома;read/write
— количество операций чтения/записи;discrd
— количество операций сброса данных;KiB/r/KiB/w
— средний размер операций чтения/записи в килобайтах;MBr/s/MBw/s
— скорость чтения/записи;avio
— среднее время ввода/вывода.
Сетевая статистика
Строка NET отображает статистику сетевой активности.
tcpi/tcpo/udpi/udpo
— статистика по TCP/UDP трафику;pcki/pcko
— количество входящих/исходящих пакетов;sp
— пропускная способность;si/so
— скорость приёма/передачи данных;erri
— количество ошибок при приёме пакетов;erro
— количество ошибок при передаче пакетов;drpi
— количество сброшенных входящих пакетов;drpo
— количество сброшенных исходящих пакетов;
Анализ статистики atop
На что обратить внимание при анализе данных:
CPU
высокий
sys
иirq
, но низкийidle
указывают на системные проблемы;wait
> 0% может свидетельствовать о задержках ввода/вывода.
MEM
высокий
dirty
и низкийfree
указывают на потенциальные задержки при записи данных на диск;проверить использование кэша и slab-кэша.
SWP
высокое использование свопа (
free
близко к 0) может привести к замедлению системы.
PAG
большое количество
scan
иsteal
указывает на перегрузку системы управления памятью.
DSK
высокий
busy
(> 90%) и большое времяavio
указывают на проблемы с производительностью дисков.
NET
проверить
si
иso
на наличие узких мест в сети. Высокиеerri
иerro
указывают на ошибки в сети.
PSI
значения
cpusome
,memsome
,iosome
выше 10% сигнализируют о перегрузке ресурсов.
CPL
средняя нагрузка (
avg1
,avg5
,avg15
) выше числа ядер (numcpu
) указывает на перегрузку.
Каждый раздел требует анализа в контексте специфики нагрузки и ожидаемой производительности.
Дополнительная информация о процессах
Общий вывод команды atop
содержит дополнительную информацию для каждого запущенного процесса:
PID
— идентификатор процесса;RUID
— реальный идентификатор пользователя, от имени которого выполняется процесс;EUID
— эффективный идентификатор пользователя, под которым выполняется процесс;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
— имя процесса.
Настройка записи логов atop
Конфигурационный файл для atop — /etc/sysconfig/atop
.
Конфигурация для посуточной записи логов с шагом в 10 минут (параметр INTERVAL
в секундах) выглядит следующим образом:
# 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"
При необходимости можно изменить шаг записи, изменив параметр INTERVAL
. Значение указывается в секундах.
После изменения конфигурационного файла необходимо перезапустить atop:
$ sudo systemctl restart atop
Для просмотра дневного лога необходимо выполнить следующую команду в «Терминале»:
$ atop -r /var/log/atop/atop_20250809
В данном случае, /var/log/atop/atop_20250809
— путь до нужного файла с логами.
Для навигации по времени в дневном логе используются клавиши:
t
— перейти вперед по времени;Shift + t
— перейти назад по времени.
Для остановки сбора логов необходимо выполнить следующую команду:
$ sudo systemctl stop atop
Более подробную информации об atop и его использовании вы можете найти в соответствующем руководстве, выполнив в «Терминале»:
$ man atop