2.9.6.3.1.4 atop
Установка и запуск atop
Описание колонок в выводе atop
Анализ статистики atop
Дополнительная информация о процессах
Параметры утилиты
Настройка ежедневной записи логов
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО: atop-2.10.0
atop — интерактивный полноэкранный монитор производительности. Является аналогом top, но в отличие от него выводит только новые изменения об активных системных процессах. Основным преимуществом утилиты atop является функция ведения логов.
В состав пакета входит утилита atopsar — встроенный анализатор логов atop, который позволяет быстро найти проблему и просмотреть лог за определенный промежуток времени. Подробнее об утилите atopsar см. в нашей статье «atopsar — встроенный анализатор логов atop».
Вы можете подробнее ознакомиться с интерактивными утилитами динамического мониторинга процессов, просмотрев наши обучающие видео:
на RuTube — Интерактивные утилиты динамического мониторинга процессов;
в Яндекс.Дзен — Интерактивные утилиты динамического мониторинга процессов;
в VK Видео — Интерактивные утилиты динамического мониторинга процессов.
На наших каналах вы также сможете найти много другой полезной информации.
Установка и запуск atop
Установить atop можно командой (потребуются права администратора):
sudo dnf install atop
Для запуска утилиты необходимо в терминале выполнить команду:
atop
После запуска в терминале можно увидеть вывод, примерно следующего содержания:
Описание колонок в выводе atop
Статистика процессов
PRC (Process Information) — статистика процессов:
- sys — время, затраченное процессами в режиме ядра;
- user — время, затраченное процессами в режиме пользователя;
- proc — общее количество процессов в системе;
- trun — количество процессов, находящихся в состоянии выполнения;
- tslpi — количество процессов, ожидающих ресурсов в спящем режиме;
- tslpu — количество процессов, ожидающих ресурсов в интерактивном режиме;
- tidle — количество процессов, находящихся в состоянии простоя;
- zombie — количество процессов-зомби;
- clones — количество процессов, созданных с момента последнего замера;
- exit — количество завершенных процессов.
Статистика производительности
CPU (CPU Utilization) — статистика производительности:
- sys — использование процессора в режиме ядра (системные задачи);
- user — использование процессора в режиме пользователя;
- irq — использование процессора на обработку прерываний;
- idle — время простоя процессора;
- wait — время ожидания ввода/вывода;
- steal — время, украденное гипервизором;
- ipc — количество инструкций на такт;
- cycl — средняя тактовая частота;
- curf — текущая частота процессора.
Статистика загрузки процессора
CPL (CPU Load) — статистика загрузки процессора:
- numcpu — количество доступных CPU;
- avg1/avg5/avg15 — средняя загрузка системы за последние 1, 5 и 15 минут;
- csw — количество переключений контекста;
- intr — количество аппаратных прерываний.
Статистика памяти
MEM (Memory Usage) — потребление памяти:
- tot — общий объем памяти;
- free — свободная память;
- avail — доступная память;
- cache — используемая память под кеш;
- dirty — объем данных в памяти, которые должны быть записаны на диск;
- slab — объем памяти, используемой под SLAB-кеш;
- shmem/shrss/shswp — объем используемой общей памяти (shared memory);
- pgtab — используемая память под таблицы страниц.
Статистика использования swap-памяти
SWP (Swap Usage) — использование swap-памяти:
- tot — общий объем свопа;
- free — свободный объем свопа;
- swcac — объем памяти, кешируемой в свопе;
- zswap/zstor — объем памяти в zswap/zstor;
- vmcom — используемая виртуальная память;
- vmlim — лимит виртуальной памяти.
Статистика виртуальной памяти
PAG (Paging) — частота подкачки страниц:
- scan/steal/stall/compact — данные по работе системы виртуальной памяти (сканирование страниц, перехваты, остановки, компактирование);
- pgin/pgout — количество страниц, записанных в память/выгруженных из нее;
- numamig/migrate — данные по миграции страниц в NUMA;
- oomkill — количество завершений процессов из-за недостатка памяти.
Статистика давления на CPU
PSI (Pressure Stall Information) — информация о снижении давления в системе:
- cpusome/memsome/memfull/iosome/iofull — метрики давления на CPU, память и ввод/вывод.
Управление логическими томами
LVM (Logical Volume Management) — управление логическими томами:
- busy — уровень загрузки тома;
- read/write — количество операций чтения/записи;
- discrd — количество операций сброса данных;
- KiB/r/KiB/w — средний размер операций чтения/записи в килобайтах;
- MBr/s/MBw/s — скорость чтения/записи;
- avio — среднее время ввода/вывода.
Статистика дисков
DSK (Disk Usage) — статистика дисков:
- аналогичные параметры для физических дисков.
Сетевая статистика
NET (Network Usage) — сетевая статистика:
- tcpi/tcpo/udpi/udpo — статистика по TCP/UDP трафику;
- pcki/pcko — количество входящих/исходящих пакетов;
- sp — пропускная способность;
- si/so — скорость приема/передачи данных.
Анализ статистики atop
На что обратить внимание при анализе данных: 1. CPU:
- высокий sys, irq и низкий idle указывают на системные проблемы;
- wait > 0% может свидетельствовать о задержках ввода/вывода.
2. MEM:
- высокий dirty и низкий free указывают на потенциальные задержки при записи данных на диск;
- проверить использование кеша и slab-кеша.
3. SWP:
- высокое использование свопа (free близко к 0) может привести к замедлению системы.
4. PAG:
- большое количество scan и steal указывает на перегрузку системы управления памятью.
5. DSK:
- высокий busy (>90%) и большое время avio указывают на проблемы с производительностью дисков.
6. NET:
- проверить si и so на наличие узких мест в сети. Высокие erri и erro указывают на ошибки в сети.
7. PSI:
- значения cpusome, memsome, iosome выше 10% сигнализируют о перегрузке ресурсов.
8. 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 — имя процесса.
Параметры утилиты
Далее приведено описание наиболее часто используемых интерактивных команд, которые можно выполнять во время работы программы (использование shift+<параметр> выстроит текущий список по выше указанным параметрам):
- m — отсортирует процессы по занятой памяти;
- d — отсортирует процессы по дисковой активности;
- n — отсортирует процессы по использованию сети (доступно только с установленным патчем);
- v — покажет подробную информацию о процессах (пользователя, дату и время начала процесса);
- u — отсортирует таблицу по пользователям;
- i — изменение времени проверки, по умолчанию 10 секунд;
- g — вернет все в дефолтный вывод;
- c — вывести полный путь запущенного процесса (столбец COMMAND).
Настройка ежедневной записи логов
Для посуточного ведения логов необходимо отредактировать конфигурационный файл atop:
sudo nano /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
Дата последнего изменения: 20.02.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.