- Home »

Команда atop в Linux — мониторинг системы и процессов
Представь себе ситуацию: твой сервер начинает тормозить, пользователи жалуются на медленную работу, а ты понятия не имеешь, что именно происходит под капотом. Системные администраторы и DevOps-инженеры сталкиваются с этой проблемой постоянно. Стандартные утилиты типа top
и htop
дают поверхностную картину, но когда нужно глубокое понимание происходящего — на сцену выходит atop
. Эта мощная утилита мониторинга не просто показывает текущее состояние системы, а ведёт подробную историю всех процессов, системных ресурсов и их изменений во времени. Если ты серьёзно занимаешься администрированием серверов, atop
станет твоим незаменимым помощником в диагностике производительности и поиске узких мест.
Что такое atop и чем он круче обычного top
atop
(Advanced System & Process Monitor) — это продвинутая утилита мониторинга системы для Linux, которая отображает загрузку системных ресурсов в реальном времени. Главная фишка в том, что она не только показывает текущие данные, но и сохраняет исторические данные для анализа. Можешь думать о ней как о top
на стероидах с функцией машины времени.
Основные преимущества перед стандартными инструментами:
- Исторические данные — можешь посмотреть, что происходило с системой час, день или неделю назад
- Детальная статистика — показывает не только CPU и RAM, но и дисковую активность, сетевые интерфейсы, GPU (если есть)
- Логирование в фоне — демон atop постоянно собирает данные, даже когда никто не смотрит
- Гибкая настройка — куча горячих клавиш для сортировки и фильтрации процессов
- Анализ завершённых процессов — видишь даже те процессы, которые уже отработали и закрылись
Установка atop
Установка довольно простая, но есть нюансы в зависимости от дистрибутива:
# Ubuntu/Debian
sudo apt update
sudo apt install atop
# CentOS/RHEL/Fedora
sudo yum install atop
# или для новых версий
sudo dnf install atop
# Arch Linux
sudo pacman -S atop
# Проверяем установку
atop -V
После установки автоматически запускается демон atopd
, который начинает собирать данные. Проверить его статус можно так:
systemctl status atop
# или
systemctl status atopd
Основы работы с atop
Запуск atop выглядит просто, но под капотом творится магия:
# Базовый запуск
atop
# Запуск с указанием интервала обновления (в секундах)
atop 5
# Запуск с логированием в файл
atop -w /path/to/logfile.log 10
# Чтение из лог-файла
atop -r /path/to/logfile.log
Интерфейс atop разделён на несколько частей:
- Верхняя панель — общая информация о системе (время, загрузка, память)
- Средняя панель — статистика по ресурсам (CPU, память, диски, сеть)
- Нижняя панель — список процессов с детальной информацией
Горячие клавиши и навигация
Вот где atop реально раскрывается — куча полезных горячих клавиш:
Клавиша | Описание | Практическое применение |
---|---|---|
c |
Сортировка по CPU | Найти процессы, жрущие процессор |
m |
Сортировка по памяти | Поиск утечек памяти |
d |
Сортировка по дисковой активности | Найти процессы с интенсивным I/O |
n |
Сортировка по сетевой активности | Мониторинг сетевого трафика |
t |
Переключение между режимами времени | Анализ исторических данных |
g |
Показать общую информацию | Общий обзор системы |
u |
Показать процессы конкретного пользователя | Фильтрация по пользователю |
T |
Показать threads | Детальный анализ многопоточных приложений |
Практические примеры использования
Кейс 1: Поиск процесса, загружающего CPU
# Запускаем atop
atop
# Нажимаем 'c' для сортировки по CPU
# Смотрим на колонку CPU в списке процессов
# Процессы с высокой загрузкой будут наверху
В выводе ищи колонку CPU
— там будет показан процент использования CPU каждым процессом. Если видишь процесс с постоянно высоким значением, скорее всего, это твой виновник.
Кейс 2: Анализ использования памяти
# Сортируем по памяти
# В atop нажимаем 'm'
# Смотрим на колонки VSIZE (виртуальная память) и RSIZE (физическая память)
Обрати внимание на процессы с большим значением RSIZE
— это реальное потребление оперативной памяти.
Кейс 3: Диагностика дисковой активности
# Переключаемся в режим дисковой активности
# Нажимаем 'd' в atop
# Смотрим на колонки RDDSK (чтение) и WRDSK (запись)
Это особенно полезно для выявления процессов, которые активно читают или пишут на диск, что может быть причиной тормозов системы.
Работа с историческими данными
Одна из самых крутых фич atop — возможность анализа исторических данных. По умолчанию atop сохраняет логи в /var/log/atop/
:
# Просмотр доступных лог-файлов
ls -la /var/log/atop/
# Открытие лог-файла за конкретную дату
atop -r /var/log/atop/atop_20241201
# Навигация по времени в историческом режиме
# t - переход к следующему временному интервалу
# T - переход к предыдущему временному интервалу
# b - переход к началу файла
# e - переход к концу файла
Это невероятно полезно для анализа инцидентов. Представь: вчера в 15:30 сервер начал тормозить, а ты можешь точно посмотреть, что происходило в этот момент.
Настройка демона atop
Демон atop настраивается через файл конфигурации. Обычно это /etc/default/atop
или /etc/sysconfig/atop
:
# Редактируем конфигурацию
sudo nano /etc/default/atop
# Основные параметры:
LOGINTERVAL=600 # Интервал записи в секундах (10 минут)
LOGGENERATIONS=28 # Количество дней хранения логов
LOGPATH=/var/log/atop # Путь к лог-файлам
# Перезапускаем демон после изменений
sudo systemctl restart atop
Важный момент: не ставь слишком маленький интервал записи, иначе система будет тратить ресурсы на сам мониторинг.
Автоматизация и скрипты
atop отлично интегрируется со скриптами для автоматизации мониторинга:
#!/bin/bash
# Скрипт для поиска процессов с высокой загрузкой CPU
# Запускаем atop в batch-режиме на 1 итерацию
atop -b 1 | grep -E "CPU|PID" | head -20
# Или более продвинутый вариант с парсингом
atop -P CPU -b 1 | awk '$7 > 80 {print $1, $2, $7"%"}' | head -10
Для мониторинга в реальном времени можешь создать алерты:
#!/bin/bash
# Алерт при высокой загрузке CPU
while true; do
high_cpu=$(atop -P CPU -b 1 | awk '$7 > 90 {print $1, $2, $7"%"}')
if [[ -n "$high_cpu" ]]; then
echo "ALERT: High CPU usage detected!"
echo "$high_cpu"
# Отправляем уведомление (email, slack, etc.)
fi
sleep 60
done
Сравнение с другими инструментами
Инструмент | Исторические данные | Детализация | Ресурсы | Лучше всего для |
---|---|---|---|---|
top |
Нет | Базовая | Минимальные | Быстрый обзор |
htop |
Нет | Хорошая | Низкие | Интерактивный мониторинг |
atop |
Да | Отличная | Средние | Глубокий анализ и история |
iotop |
Нет | Специализированная | Низкие | Только дисковый I/O |
nmon |
Частично | Широкая | Средние | Системная аналитика |
Полезные трюки и нестандартные применения
Интеграция с Zabbix
Можешь создать скрипт для передачи данных atop в Zabbix:
#!/bin/bash
# Скрипт для Zabbix агента
case $1 in
cpu.load)
atop -P CPU -b 1 | awk '{sum+=$7} END {print sum/NR}'
;;
memory.usage)
atop -P MEM -b 1 | awk '{sum+=$5} END {print sum}'
;;
disk.io)
atop -P DSK -b 1 | awk '{sum+=$4+$5} END {print sum}'
;;
esac
Создание дашбордов
Данные atop можно экспортировать в Grafana через промежуточные скрипты:
#!/bin/bash
# Экспорт метрик в формате Prometheus
echo "# HELP cpu_usage CPU usage percentage"
echo "# TYPE cpu_usage gauge"
atop -P CPU -b 1 | awk '{print "cpu_usage{process=\""$2"\"} "$7}'
echo "# HELP memory_usage Memory usage in MB"
echo "# TYPE memory_usage gauge"
atop -P MEM -b 1 | awk '{print "memory_usage{process=\""$2"\"} "$5}'
Анализ производительности веб-серверов
Для веб-серверов особенно полезно мониторить связку процессы-сеть:
# Мониторинг nginx/apache процессов
atop -P NET -b 1 | grep -E "(nginx|apache|httpd)"
# Или создать постоянный мониторинг
watch -n 5 'atop -P NET -b 1 | grep -E "(nginx|apache|httpd)" | head -10'
Оптимизация производительности atop
При работе с высоконагруженными серверами важно правильно настроить atop, чтобы он сам не стал узким местом:
# Увеличиваем интервал сбора данных для продакшна
echo "LOGINTERVAL=300" >> /etc/default/atop
# Ограничиваем количество хранимых логов
echo "LOGGENERATIONS=7" >> /etc/default/atop
# Настраиваем ротацию логов
echo "/var/log/atop/atop_* {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}" > /etc/logrotate.d/atop
Решение типичных проблем
atop не запускается
# Проверяем права доступа
sudo chown root:root /usr/bin/atop
sudo chmod 755 /usr/bin/atop
# Проверяем демон
sudo systemctl status atop
sudo systemctl start atop
sudo systemctl enable atop
Логи не создаются
# Проверяем директорию логов
sudo mkdir -p /var/log/atop
sudo chown root:root /var/log/atop
sudo chmod 755 /var/log/atop
# Проверяем конфигурацию
cat /etc/default/atop
Высокое потребление ресурсов
Если atop сам начинает жрать ресурсы:
# Увеличиваем интервал сбора данных
sudo sed -i 's/LOGINTERVAL=.*/LOGINTERVAL=600/' /etc/default/atop
# Уменьшаем количество хранимых логов
sudo sed -i 's/LOGGENERATIONS=.*/LOGGENERATIONS=3/' /etc/default/atop
# Перезапускаем демон
sudo systemctl restart atop
Интеграция с другими инструментами
atop хорошо работает в связке с другими инструментами мониторинга:
# Комбинация с netstat для анализа сетевых соединений
netstat -tuln | grep :80 && atop -P NET -b 1 | grep httpd
# Связка с iostat для глубокого анализа дисков
iostat -x 1 3 && atop -P DSK -b 1
# Использование с ss для анализа сокетов
ss -tulpn | grep :443 && atop -P NET -b 1 | grep nginx
Где развернуть для тестирования
Для изучения atop и экспериментов с мониторингом рекомендую арендовать VPS с достаточными ресурсами (минимум 2GB RAM, 2 CPU cores). Если планируешь серьёзные нагрузочные тесты или работу с большими объёмами данных, лучше взять выделенный сервер.
Полезные ресурсы
Заключение и рекомендации
atop — это мощный инструмент, который должен быть в арсенале каждого системного администратора. Он особенно незаменим в следующих ситуациях:
- Анализ инцидентов — возможность “откатиться” назад во времени и посмотреть, что происходило во время проблемы
- Планирование ресурсов — исторические данные помогают понять паттерны нагрузки
- Оптимизация производительности — детальная информация о процессах и ресурсах
- Мониторинг продакшн-серверов — постоянный сбор данных в фоне
Главный совет: не пытайся освоить все функции atop сразу. Начни с базовых команд (сортировка по CPU, памяти, дискам), а затем постепенно изучай более продвинутые возможности. Особое внимание удели настройке демона — правильная конфигурация сэкономит место на диске и ресурсы системы.
Помни: atop — это не замена системам мониторинга типа Zabbix или Prometheus, а дополнительный инструмент для детального анализа. Используй его как “хирургический инструмент” для точной диагностики проблем производительности.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.