Гид по технологиям

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

7 min read Мониторинг. Обновлено 18 Oct 2025
Мониторинг нагрузки в Linux с atop
Мониторинг нагрузки в 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 с системной и процессной информацией

Структура вывода и ключевые строки

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 с отображением командной строки

Запись и воспроизведение сессий

atop умеет записывать данные в файл для последующего анализа. Это удобно, когда нужно отследить поведение системы в течение часа или нескольких дней и затем воспроизвести момент инцидента на другой машине.

Пример записи (сборка логов):

sudo atop -w /var/log/atop/atop.raw 60 1440

Эта команда (пример) записывает снимки каждые 60 секунд и делает 1440 снимков (что соответствует 24 часам). Путь и интервалы настраиваются под задачу.

Чтобы воспроизвести записанный файл используйте:

sudo atop -r /var/log/atop/atop.raw

В режиме чтения можно перематывать между моментами времени и изучать, какие процессы создавали нагрузку.

Важно: для сохранения детальной информации по дискам и сетям в записях необходимо, чтобы в вашей системе были активны соответствующие счётчики (см. раздел про storage accounting выше).

Практическая методика расследования инцидента

Ниже — мини-методология, которую вы можете применять при расследовании высокой загрузки.

  1. Быстрая оценка системы
    • Откройте atop и посмотрите системные строки (CPU, MEM, DSK, NET). Определите, какая подсистема загружена.
  2. Узкая локализация
    • Нажмите соответствующую клавишу: m, d или n чтобы получить детальные метрики. Отсортируйте по потреблению CPU/IO.
  3. Поиск виновника
    • Посмотрите процессы в нижней части экрана — какие процессы изменили использование ресурсов за последний интервал.
    • Нажмите c чтобы увидеть командную строку процесса и понять, что он делает.
  4. Сбор доказательств
    • Если ситуация носит временный характер, запишите сессию командой atop -w. Снимайте системные журналы и вывод top/ps для перекрёстной проверки.
  5. Действия
    • Если процесс некорректный — перезапустите/ограничьте его. Для системных проблем — плановый откат или проверка конфигурации обслуживания диска и сети.

Критерии приёмки

  • Определён виновник, его 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Уведомления Outlook только от важных отправителей
Продуктивность

Уведомления Outlook только от важных отправителей

Как сделать вкладку Chrome всегда сверху
Браузеры

Как сделать вкладку Chrome всегда сверху

Как лайкать и дизлайкать песни в Spotify
Музыка

Как лайкать и дизлайкать песни в Spotify

Ошибка JavaScript heap out of memory — исправление
Node.js

Ошибка JavaScript heap out of memory — исправление

Alexa: режим Soothe Baby — настройка и советы
Руководства

Alexa: режим Soothe Baby — настройка и советы

Скрыть или удалить историю версий в Google Документах
Google Документы

Скрыть или удалить историю версий в Google Документах