Linux

Мониторинг системных ресурсов Linux: полное руководство

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

Обновлено 17 февраля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+CentOS 8+Debian 11+Arch Linux

Введение / Зачем это нужно

Мониторинг системных ресурсов — это основа диагностики проблем производительности в Linux. Будь то сервер, который «тормозит», или рабочая станция с высоким потреблением памяти, понимание, как используются CPU, оперативная память, диски и сеть, позволяет быстро локализовать узкое место. Этот гайд познакомит вас с основными и продвинутыми инструментами, которые есть в большинстве дистрибутивов. После выполнения вы сможете в реальном времени оценивать состояние системы и собирать исторические данные для анализа.

Требования / Подготовка

  1. Доступ к терминалу Linux (локально или через SSH).
  2. Права суперпользователя (sudo) для установки пакетов и запуска некоторых утилит (iotop, nmon, sar).
  3. Базовые команды (top, free, df) обычно предустановлены. Для расширенного функционала установите:
    • htop — улучшенный мониторинг процессов.
    • iotop — мониторинг дискового ввода-вывода.
    • sysstat — набор утилит, включая sar для исторических данных.
    • glances — кросс-платформенный мониторинг.
    • nmon — комплексный мониторинг всех ресурсов (опционально).

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install htop iotop sysstat glances nmon

Установка на CentOS/RHEL/Fedora:

sudo yum install htop iotop sysstat glances nmon

Пошаговая инструкция

Шаг 1: Базовый мониторинг в реальном времени с top

top — стандартная утилита, присутствующая в любой системе. Она показывает активные процессы и общую загрузку.

  1. Запустите: top
  2. Ключевые показатели в шапке:
    • %Cpu(s) — использование ядер CPU. us (user) — пользовательские процессы, sy (system) — ядро, id (idle) — простоя.
    • KiB Mem — использование оперативной памяти: total, used, free, buff/cache.
    • KiB Swap — использование подкачки.
  3. Управление:
    • Нажмите 1 — развернуть загрузку по каждому ядру CPU.
    • M — сортировать процессы по памяти.
    • P — сортировать по CPU (по умолчанию).
    • k — завершить процесс (потребует PID).
    • q — выйти.

⚠️ Важно: top обновляется каждые 3 секунды. Для изменения интервала запустите top -d 5 (5 секунд).

Шаг 2: Улучшенный интерактивный мониторинг с htop

htop — цветной, более удобный аналог top с поддержкой мыши.

  1. Запустите: htop
  2. Преимущества:
    • Цветовая индикация: красный — высокая загрузка CPU, зеленый — низкая.
    • Древовидное отображение процессов (F5).
    • Горизонтальная и вертикальная прокрутка списка процессов.
    • Быстрое завершение/приоритизация процессов через F9/F10.
  3. Быстрые клавиши:
    • F2 — настройки (отображение метрик, цвета).
    • F3 — поиск процесса.
    • F4 — фильтрация по имени.
    • F6 — сортировка по любому столбцу.
    • F9 — убить процесс (после выбора сигнала, обычно SIGTERM).

Шаг 3: Универсальный обзор всех ресурсов с glances

glances — кросс-платформенный мониторинг, который агрегирует данные CPU, памяти, дисков, сети, контейнеров, процессов в одном интерфейсе.

  1. Запустите: glances
  2. Основные разделы:
    • CPU — общая и поядерная загрузка, частоты.
    • MEM — использование RAM и swap.
    • LOAD — средняя нагрузка за 1, 5, 15 минут.
    • NETWORK — входящий/исходящий трафик по интерфейсам.
    • DISK I/O — скорость чтения/записи.
    • PROCESSES — список процессов с сортировкой по CPU/памяти.
  3. Интерактивные клавиши:
    • c — показать/скрыть CPU.
    • m — память.
    • d — диски.
    • n — сеть.
    • f — фильтр процессов (например, f python).
    • h — справка.
  4. Удаленный мониторинг:
    На целевом хосте: glances -s (запускает сервер).
    На локальной машине: glances -c <IP_адрес>.

Шаг 4: Глубокий анализ дискового I/O с iotop

iotop — аналогичен top, но фильтрует процессы по дисковому вводу-выводу.

  1. Запустите с sudo: sudo iotop
  2. Колонки:
    • DISK READ / DISK WRITE — скорость чтения/записи (K/s, M/s).
    • SWAPIN — использование swap процессом.
    • IO> — процент времени, которое процесс проводит в операциях I/O.
  3. Фильтрация:
    • a — показывать все процессы (включая kernel threads).
    • o — показывать только процессы, выполняющие I/O.
    • p — точный PID (введите после нажатия p).
  4. Выход: q.

Шаг 5: Комплексный мониторинг всех ресурсов с nmon

nmon (Nigel's Monitor) — мощная утилита для сбора данных по CPU, памяти, дискам, сети, виртуальной памяти, файловым системам.

  1. Запустите: nmon
  2. Основные экраны (переключение одной клавишей):
    • c — CPU (общая и поядерная загрузка, частоты).
    • m — память и swap.
    • d или dsk — дисковые устройства и статистика.
    • n — сетевые интерфейсы (входящий/исходящий трафик).
    • j — файловые системы (использование inode, занятость).
    • t — топ-процессы по CPU/памяти.
    • v — виртуальная память (крупные страницы).
  3. Запись сессии для анализа:
    nmon -f -s 2 -c 100 — записывать данные каждые 2 секунды, 100 раз. Файл сохранится как hostname_YYYYMMDD_HHMMSS.nmon.
    Для просмотра записи: nmon -f -t -s 2 -c 100 (графики) или используйте онлайн-анализатор (например, nmon2rrd).
  4. Выход: q.

Шаг 6: Исторический анализ и сбор статистики с sar

sar (System Activity Reporter) — часть пакета sysstat. Он собирает системную активность в фоне и хранит данные в /var/log/sysstat/.

  1. Активация сбора данных (если не активен):
    sudo systemctl enable --now sysstat
    
    По умолчанию sysstat собирает данные каждые 10 минут.
  2. Просмотр исторических данных:
    • Текущие данные (если сбор активен): sar -u (CPU), sar -r (память), sar -b (дисковый I/O), sar -n DEV (сеть).
    • Данные за конкретный день: sar -u -f /var/log/sysstat/sa17 (где sa17 — файл за 17-е число).
  3. Ключевые опции:
    • -u — использование CPU.
    • -r — использование памяти и swap.
    • -b — передача и чтение блоков (диск).
    • -n DEV — статистика сетевых интерфейсов.
    • -P ALL — загрузка по всем ядрам CPU.
    • -s HH:MM:SS — начальное время.
    • -e HH:MM:SS — конечное время.
  4. Пример: Посмотреть среднюю загрузку CPU за сегодня с 9:00 до 12:00:
    sar -u -s 09:00:00 -e 12:00:00
    

Проверка результата

Успешный мониторинг определяется тем, что вы можете:

  1. В реальном времени определить, какой процесс/ядро загружает CPU (top, htop, glances).
  2. Увидеть использование памяти и swap, а также процессы, потребляющие больше всего RAM (htop, glances, free -h).
  3. Оценить дисковую активность и найти «прожорливые» процессы (iotop, glances).
  4. Получить исторические данные для анализа пиковых нагрузок (sar).
  5. Зафиксировать полную картину системы одним скриншотом/сессией (nmon).

Если все инструменты запускаются и отображают актуальные данные (например, в top меняются значения CPU), мониторинг работает.

Возможные проблемы

1. Утилита не найдена (command not found)

Причина: Пакет не установлен.
Решение: Установите соответствующий пакет (см. Требования). Для iotop и nmon может потребоваться sudo.

2. iotop запускается, но список процессов пуст или нет прав

Причина: iotop требует прав root для чтения статистики I/O.
Решение: Запускайте через sudo iotop. Если ошибка persists, проверьте, загружен ли модуль ядра blkio (обычно загружен автоматически).

3. sar не показывает данные за сегодня

Причина: Сбор данных не активен или файлы за текущий день еще не сгенерированы (сбор по умолчанию в 23:50).
Решение:

  • Проверьте статус: sudo systemctl status sysstat.
  • Запустите сбор вручную: sudo sar -u 1 3 (собирать каждую секунду, 3 раза).
  • Для немедленной записи в файл дня: sudo sar -u -o /var/log/sysstat/sa$(date +%d).

4. nmon отображает только часть данных или нет сетевых интерфейсов

Причина: Утилита зависит от доступных в системе метрик.
Решение: Убедитесь, что в системе есть необходимые файлы в /proc (например, /proc/net/dev для сети). Обновите ядро или установите дополнительные пакеты (например, sysstat для некоторых метрик).

5. Высокая нагрузка на CPU от самих утилит мониторинга

Причина: Некоторые утилиты (особенно glances с множеством плагинов) могут потреблять ресурсы.
Решение:

  • В glances отключите ненужные плагины (конфиг ~/.config/glances/glances.ini).
  • В top/htop убедитесь, что вы не активировали многократное обновление (интервал менее 0.5 сек).
  • Для долгосрочного сбора используйте sar (минимальные накладные расходы).

6. Не хватает прав для завершения процесса (в htop/top)

Причина: Пытаетесь завершить процесс, принадлежащий другому пользователю (особенно root).
Решение: Используйте sudo для запуска утилиты (sudo htop) или завершайте только свои процессы.

Часто задаваемые вопросы

В чем разница между утилитами top и htop?
Какую утилиту выбрать для постоянного мониторинга сервера?
Как мониторить только определенный процесс?
Почему у меня нет доступа к некоторым командам (например, iotop)?

Полезное

Установка необходимых утилит (при необходимости)
Базовый мониторинг в реальном времени с top
Интерактивный мониторинг с htop
Универсальный обзор с glances
Мониторинг дискового I/O с iotop
Исторический анализ с sar

Эта статья помогла вам решить проблему?