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

Мониторинг нагрузки в 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
Автор
Редакция

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

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

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

Потеря пакетов в Unturned: причины и исправления
Игры

Потеря пакетов в Unturned: причины и исправления

Здоровый баланс экранного времени у детей
Воспитание

Здоровый баланс экранного времени у детей

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

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

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

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

Присвоение геотегов в Apple Photos
Фото

Присвоение геотегов в Apple Photos