Мониторинг нагрузки в Linux с помощью atop

О чём эта статья
Эта статья пошагово рассказывает, как установить и использовать atop на Linux, какие строки и метрики он показывает, как управлять интерактивным выводом и как применять atop в практических сценариях расследования производительности. Включены рекомендации, чек-листы для разных ролей и компактный глоссарий терминов.
Важно: все примеры и проверки были выполнены на Ubuntu 14.04. Команды общие и подойдут для большинства дистрибутивов Debian/Ubuntu; для других дистрибутивов используйте пакетный менеджер вашей системы.
Кому это полезно
- Системным администраторам и инженерам DevOps — для быстрого поиска узких мест.
- Инженерам поддержки — для разбора инцидентов и воспроизведения проблемы.
- Разработчикам — для проверки влияния кода на ресурсы в реальных условиях.
Установка
Пользователи Debian-подобных систем (Ubuntu, Mint) могут установить atop так:
sudo apt-get update
sudo apt-get install atop
Для RPM-дистрибутивов используйте yum или dnf: например, sudo yum install atop
или sudo dnf install atop
. Также доступен исходный код и бинарные сборки на официальном сайте проекта.
Примечание: в статьях и туториалах иногда встречается опечатка sudoapt-get
; обязательно используйте пробел между sudo и apt-get.
Быстрый старт
Запускать atop обычно нужно от root, чтобы видеть информацию по всем процессам и дискам:
sudo atop
Интерактивный вывод обновляется каждые 10 секунд по умолчанию. Вверху экрана — системная статистика, ниже — процессы, которые изменили потребление ресурсов за интервал.
Структура вывода и ключевые строки
atop делит экран на две большие части: системный уровень и уровень процессов. Ниже — разбор основных строк системного уровня и что они означают.
PRC
Содержит суммарные значения CPU: время в режиме ядра (sys), в пользовательском режиме (user), число процессов (#proc), число потоков в состоянии “running” (#trun), в состоянии “sleeping interruptible” (#tslpi) и “sleeping un-interruptible” (#tslpu), зомби-процессы (#zombie), количество системных клонов (clones) и число завершившихся процессов в интервале (#exit). Если не включён учёт процессов, некоторые поля могут быть помечены как ?
.
CPU
Показывает процент времени CPU, проведённый в sys, user, irq (включая softirq), а также долю простоя: idle (когда никто не ждёт I/O) и wait (когда один или более процессов ждут I/O). На многопроцессорных системах для каждого CPU может быть отдельная строка с меткой cpu
.
CPL
Информация о загрузке: число потоков, готовых к выполнению или ожидающих I/O (runqueue), число переключений контекста (csw), число обслуженных прерываний (intr) и доступное число CPU.
MEM
Показывает общую физическую память (tot), свободную память (free), объём, занимаемый page cache (cache), «грязные» страницы, требующие записи на диск (dirty), буферы файловой системы (buff) и slab (ядровые malloc’ы).
SWP
Информация о swap: общий объём (tot), свободный объём (free), суммарное зарезервированное виртуальное пространство (vmcom) и лимит (vmlim).
DSK
Содержит данные по использованию диска: доля времени занятости (busy), число операций чтения (read) и записи (write), средние K iB на операцию (KiB/r, KiB/w), пропускная способность в MiB/s для чтения и записи (MBr/s, MBw/s), средняя глубина очереди (avq) и среднее время обслуживания запроса в миллисекундах (avio).
NET
Данные сетевой подсистемы: транспортный уровень (TCP/UDP), IP-слой и строки по активным интерфейсам.
Примечание: atop может показывать дисковые и сетевые показатели по процессу только если в ядре активна учётность ввода-вывода по процессам (storage accounting) или установлен патч/модуль, предоставляющий такие счётчики (в некоторых дистрибутивных ядрах это уже включено).
Интерактивные команды в atop
В интерактивном режиме вы можете включать и выключать дополнительные колонки и виды отображения с клавиатуры:
- m — показать подробную информацию о памяти
- d — показать детальную информацию по дискам
- n — показать сетевые метрики
- v — показать разные характеристики процессов
- c — показать командную строку процесса
- t — отсортировать по времени CPU
- p — фильтр по PID (в некоторых сборках)
- q — выход
Поведение клавиш может немного различаться между версиями; для полного списка используйте man:
man atop
Ниже пример экрана процесса, когда нажата клавиша c
— видна командная строка процесса:
Запись и воспроизведение сессий
atop умеет записывать данные в файл для последующего анализа. Это удобно, когда нужно отследить поведение системы в течение часа или нескольких дней и затем воспроизвести момент инцидента на другой машине.
Пример записи (сборка логов):
sudo atop -w /var/log/atop/atop.raw 60 1440
Эта команда (пример) записывает снимки каждые 60 секунд и делает 1440 снимков (что соответствует 24 часам). Путь и интервалы настраиваются под задачу.
Чтобы воспроизвести записанный файл используйте:
sudo atop -r /var/log/atop/atop.raw
В режиме чтения можно перематывать между моментами времени и изучать, какие процессы создавали нагрузку.
Важно: для сохранения детальной информации по дискам и сетям в записях необходимо, чтобы в вашей системе были активны соответствующие счётчики (см. раздел про storage accounting выше).
Практическая методика расследования инцидента
Ниже — мини-методология, которую вы можете применять при расследовании высокой загрузки.
- Быстрая оценка системы
- Откройте atop и посмотрите системные строки (CPU, MEM, DSK, NET). Определите, какая подсистема загружена.
- Узкая локализация
- Нажмите соответствующую клавишу:
m
,d
илиn
чтобы получить детальные метрики. Отсортируйте по потреблению CPU/IO.
- Нажмите соответствующую клавишу:
- Поиск виновника
- Посмотрите процессы в нижней части экрана — какие процессы изменили использование ресурсов за последний интервал.
- Нажмите
c
чтобы увидеть командную строку процесса и понять, что он делает.
- Сбор доказательств
- Если ситуация носит временный характер, запишите сессию командой atop -w. Снимайте системные журналы и вывод top/ps для перекрёстной проверки.
- Действия
- Если процесс некорректный — перезапустите/ограничьте его. Для системных проблем — плановый откат или проверка конфигурации обслуживания диска и сети.
Критерии приёмки
- Определён виновник, его PID и командная строка.
- Установлена причинно-следственная связь между пиком загрузки и процессом/операцией.
- Собраны записи (atop -w) и логи для последующего разбора.
Рольные чек-листы
Системный администратор
- Запустить atop под sudo, оценить системные строки.
- Включить детализацию для подозрительной подсистемы.
- При необходимости запустить запись и сохранить файл.
- Проверить I/O-очереди и latency.
Инженер поддержки
- Собрать запись работы сервера в момент инцидента.
- Приложить вывод atop и данные из /var/log/syslog или journald.
- Сообщить PID и командную строку разработчикам.
Разработчик
- Просмотреть командную строку и параметры запуска проблемного процесса.
- Проверить утечки памяти/падения/бесконечные циклы в коде.
- Запустить воспроизводимый тест под нагрузкой и профилировать приложение.
Альтернативы и когда atop может не подойти
- top/htop — удобны для быстрого просмотра процессов, но дают менее подробную длительную историю.
- iostat, vmstat — дают хорошие агрегированные показатели по I/O и памяти, не связывая данные с процессами по умолчанию.
- perf, bpftrace — глубже в анализе производительности, но требуют навыков и часто используются для детального профилирования.
atop идеально подходит, когда нужно получить исторический контекст и связать потребление ресурсов с конкретными процессами. Если вам требуется детальное трассирование функций и системных вызовов, используйте профильные инструменты вроде perf.
Частые ошибки и когда метод терпит неудачу
- Ожидание, что atop покажет per-process I/O на ядрах без учета storage accounting — в этом случае метрики могут отсутствовать.
- Попытка запустить без sudo — некоторые столбцы будут скрыты.
- Недостаточный объём места для логов при длительной записи — заранее планируйте ротацию и объём дискового пространства.
Советы по использованию в продакшене
- Настройте ротацию логов для файлов atop (logrotate или системный cron).
- Периодически проверяйте, включена ли учётность I/O для процессов, если вам нужна per-process DSK/NET статистика.
- Интегрируйте записи с системой хранения логов и инструментами анализа (ELK, Grafana+Prometheus) для корелляции событий.
Короткий справочник команд
- Установка:
sudo apt-get install atop
- Запуск:
sudo atop
- Запись:
sudo atop -w /путь/к/файлу
- Воспроизведение:
sudo atop -r /путь/к/файлу
- Справка:
man atop
Глоссарий (1 строка на термин)
- CPU: центральный процессор, выполняет инструкции программ.
- I/O: ввод/вывод, операции чтения и записи на диск или сеть.
- Page cache: кэш страниц в памяти, используется для ускорения доступа к файлам.
- Slab: область памяти, используемая ядром для своих выделений.
- Swap: пространство на диске, используемое при нехватке RAM.
Итог и рекомендации
Atop — мощный и практичный инструмент для мониторинга нагрузки Linux-систем. Он эффективен, когда нужно связать ресурсы с конкретными процессами и сохранить исторические снимки для последующего анализа. Для эффективной работы:
- Всегда запускать под sudo для полноты данных.
- Включать запись для расследования инцидентов.
- Комбинировать atop с другими инструментами (perf, iostat, systat) для глубокого анализа.
Важно: перед записью длительных логов проверьте доступное дисковое пространство и настройте ротацию.
Короткое резюме
- atop показывает системные и процессные метрики и умеет записывать историю.
- Используйте интерактивные клавиши для подробного просмотра (m, d, n, v, c).
- Запись и воспроизведение делают его отличным инструментом для расследований.
Примечание: для более глубокой настройки и опций обратитесь к man-странице atop
.
Похожие материалы

Video_Dxgkrnl_Fatal_Error — как исправить BSOD

Потеря пакетов в Unturned: причины и исправления
Здоровый баланс экранного времени у детей

Ошибка беспроводного адаптера или точки доступа — как исправить

Как восстановить удалённые SMS на телефоне
