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

Sysstat: установка и руководство по использованию на Linux

5 min read Инструменты Обновлено 07 Nov 2025
Sysstat: установка и руководство по мониторингу
Sysstat: установка и руководство по мониторингу

Sysstat — лёгкий и надёжный набор инструментов командной строки для журналирования и мониторинга производительности Linux/Unix. Установите пакет, включите сбор данных и используйте sar, iostat, pidstat и другие утилиты для быстрой диагностики CPU, памяти, дисков и процессов. В статье есть пошаговая методика, чек-листы для ролей и рекомендации по устранению проблем.

Введение

Sysstat — это набор утилит для сбора и анализа статистики работы системы. Он полезен для длительного мониторинга, ретроспективного анализа и оперативной диагностики серверов без GUI. Ключевые компоненты: sar (сбор и показ статистики), iostat (I/O), pidstat (процессы), mpstat (многоядерный CPU) и sadc (демон сбора).

Определение: sadc — фоновая служба, которая периодически записывает данные в файлы хранения (обычно /var/log/sa/).

Установка

На системах Red Hat / CentOS / RHEL используйте yum:

yum -y install sysstat

На Debian / Ubuntu и производных:

apt-get install sysstat

В дистрибутивах с графическим магазином программ найдите «sysstat» в менеджере приложений.

Sysstat в менеджере программ Linux Mint

После установки нужно включить сбор данных в конфигурации и запустить демон. Откройте файл конфигурации и установите ENABLED=”true”. Пример команды для редактирования (можно заменить на sudo nano):

gksu gedit /etc/default/sysstat

Найдите строку с ENABLED и измените её на:

ENABLED="true"

Включение логирования sysstat в конфигурационном файле

Сохраните файл и запустите службу:

/etc/init.d/sysstat start

Или на systemd-системах:

systemctl enable --now sysstat

Важно: на некоторых системах интервал сбора по умолчанию — 10 минут. Проверьте /etc/cron.d/sysstat или systemd таймеры, если нужен другой интервал.

Быстрая методика диагностики (mini-методология)

  1. Сначала снимите текущие показатели в реальном времени (несколько секунд/минут). Это поможет понять остро текущую нагрузку.
  2. Затем посмотрите исторические данные за день/неделю для обнаружения закономерностей.
  3. Сопоставьте данные CPU/I/O/памяти и процессов, чтобы локализовать узкое место.
  4. При необходимости включите более подробный сбор (увеличьте частоту sadc на период диагностики).

Основные команды и примеры использования

CPU — проверить использование CPU

Показать статистику CPU за текущий день (по умолчанию sar собирает данные каждые 10 минут):

sar -u

Чтобы посмотреть данные в реальном времени с интервалом и количеством отчётов, укажите два числа: интервал в секундах и число отчётов. Пример: каждые 2 секунды — 10 отчётов:

sar -u 2 10

Вывод sar -u с использованием CPU

Для отображения активности по каждому ядру используйте флаг -P ALL. Пример: один отчёт через 1 секунду:

sar -P ALL 1 1

Вывод sar -P ALL по ядрам CPU

Пояснение: %idle показывает долю простаивающего CPU; низкое значение %idle вместе с высоким %iowait указывает на проблему ввода-вывода.

Память — использование памяти

Показывает использование памяти в реальном времени (пример: каждые 2 секунды — 10 отчётов):

sar -r 2 10

Вывод sar -r по использованию памяти

Примечание: sar показывает кумулятивные и текущие показатели; используйте их для определения утечек памяти или пиков потребления.

Устройства — отчёт по дисковой активности

Показать статистику по устройствам: передачи в секунду (tps), чтение/запись в блоках. Пример: каждые 2 секунды — 10 отчётов:

iostat -d 2 10

iostat вывод tps и чтение/запись по устройствам

Объяснения полей:

  • tps = transfers per second (операций ввода-вывода в сек)
  • Blk_read/s = блоки, прочитанные в секунду
  • Blk_wrtn/s = блоки, записанные в секунду
  • Blk_read = всего прочитано блоков
  • Blk_wrtn = всего записано блоков

Для расширённых I/O-метрик используйте флаг -x:

iostat -x 2 5

Расширенный вывод iostat с дополнительными метриками

Процессы — информация по процессам

pidstat показывает статистику процессов. Чтобы вывести все процессы и их I/O:

pidstat -d

pidstat вывод по процессам с I/O

Для реального времени: интервал и количество отчётов. Пример: каждые 2 секунды — 5 отчётов:

pidstat -d 2 5

pidstat реальный мониторинг процессов

Для анализа использования памяти процессами:

pidstat -r 2 5

pidstat по использованию памяти процессами

Чек-листы по ролям

Системный администратор

  • Убедиться, что sysstat установлен и сервис запущен.
  • Проверить частоту сбора в /etc/cron.d/sysstat или systemd-таймерах.
  • Настроить ротацию логов (logrotate) для /var/log/sa.
  • Собирать данные при нагрузочном тесте для последующего анализа.

DevOps / инженер по надежности

  • Интегрировать сбор sar/iostat в CI/процессы тестирования производительности.
  • Экспортировать нужные отчёты в CSV/JSON для хранения в системе наблюдения.
  • Настроить оповещения на основе SLI/SLO (например, высокий iowait или длительный queue для диска).

Разработчик приложения

  • Использовать pidstat, чтобы найти процессы с высокой утечкой памяти или частыми I/O.
  • Сопоставить пики нагрузки приложения с данными sar для поиска причин.

Что делать при подозрительной нагрузке — пошаговый план (runbook)

  1. Соберите реальное состояние: sar -u 1 10, iostat -x 1 10, pidstat -d 1 10.
  2. Если CPU высокий: проверьте %system vs %user; узкие места в контексте приложения.
  3. Если iowait высокий: проверьте iostat -x, queue и latency; определите устройство с высокой загрузкой.
  4. Если память утекает: pidstat -r для поиска процессов с растущим RSS.
  5. Сформируйте временный план действий: рестарт сервиса, перенос нагрузки, масштабирование.
  6. Соберите исторические данные и пересмотрите параметры сбора для долгосрочного мониторинга.

Частые ошибки и их исправление

  • Ничего не записывается: проверьте ENABLED=”true” и запущен ли sysstat/sadc.
  • Плохая частота данных: проверьте cron или systemd-timer, измените интервал на требуемый.
  • Логи быстро растут: настройте ротацию логов и ограничьте историю хранения.
  • Неправильные интерпретации: сравнивайте проценты (например, %idle, %iowait) и не ориентируйтесь только на одно число.

Когда sysstat не подходит (ограничения / альтернативы)

  • Нужен детализированный трассинг приложений (тогда лучше использовать perf, eBPF или APM-инструменты).
  • Нужен централизованный сбор метрик и визуализация в реальном времени (Prometheus + Grafana более подходящие).
  • На очень коротких интервалах (миллисекунды) sar может быть недостаточно точен; рассмотрите инструменты уровня ядра.

Ментальные модели / эвристики

  • Сопоставление: CPU + I/O + память = трёхточечная проверка при любой производственной проблеме.
  • «Пик в логах = пик в sar»: всегда проверяйте исторические данные для подтверждения инцидента.
  • Изолируй компонент: если iowait растёт, ищите именно диск/контроллер, а не CPU.

Диагностическое дерево принятия решений

flowchart TD
  A[Проблемы с производительностью] --> B{Высокий CPU?}
  B -- Да --> C[Посмотреть sar -u и sar -P ALL]
  B -- Нет --> D{Высокий iowait?}
  D -- Да --> E[Запустить iostat -x и проверить очередь]
  D -- Нет --> F{Память растёт?}
  F -- Да --> G[pidstat -r и анализ RSS]
  F -- Нет --> H[Искать сетевые или прикладные причины]

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

  • Sysstat установлен и сервис запущен.
  • Данные собираются с нужной частотой и сохраняются в /var/log/sa/.
  • Наличие как минимум одного отчёта sar, iostat и pidstat, которые демонстрируют ожидаемые метрики.

Заключение

Sysstat остаётся мощным и простым инструментом для системного мониторинга. Он подходит для оперативной диагностики и долгосрочного анализа на серверах без GUI. Комбинируйте его с современными системами мониторинга для централизованного хранения и визуализации. Если у вас есть собственные сценарии использования — поделитесь ими, чтобы расширить практические приёмы.

Важно

Sysstat — это инструмент уровня системы. Для детального анализа приложений и распределённых систем используйте его совместно с профильными APM и трассировщиками.

Сводка

  • Установите и включите sysstat (ENABLED=”true”).
  • Начинайте с sar, iostat и pidstat для базовой диагностики.
  • Используйте чек-листы и runbook для ускорения решения инцидентов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Троян Herodotus: как он работает и как защититься
Кибербезопасность

Троян Herodotus: как он работает и как защититься

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти