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

Мониторинг сервера с помощью Sysstat

• 5 min read • Системное администрирование • Обновлено 22 Nov 2025
Мониторинг сервера с Sysstat
Мониторинг сервера с Sysstat

TL;DR

Sysstat — лёгкий набор утилит для сбора и хранения метрик производительности Linux (включая sar, sa1 и sa2). Установите пакет, проверьте /etc/cron.d/sysstat и изучите ключевые показатели: %iowait, использование swap и среднюю нагрузку. Используйте варианты отчетов sar для быстрого диагноза и добавьте системную автоматизацию и дашборды при необходимости.

Иллюстрация мониторинга сервера с помощью sysstat

Sysstat — это набор утилит, предназначенных для сбора и хранения данных о производительности Linux во времени. С помощью sysstat вы можете получать исторические отчёты о CPU, вводе/выводе, обмене страницами (swap), очереди процессов и других параметрах.

Что такое Sysstat кратко

Sysstat — это пакет утилит (включая sar, iostat, mpstat и др.), которые собирают данные и записывают их в бинарные файлы отчётов. sar читает эти файлы и формирует человекочитаемые отчёты. Этот подход даёт возможность архивировать и анализировать поведение сервера в разные моменты времени.

Важно: sar показывает снимки в момент времени или усреднения за интервалы; это инструмент наблюдения, а не замена профилирования приложений.

Установка Sysstat на CentOS

Для CentOS 6 и CentOS 7 пакет sysstat доступен в репозиториях, поэтому установка простая:

yum install sysstat

После установки обратите внимание на наличие файла /etc/cron.d/sysstat — пакет обычно настраивает периодический запуск sa1/sa2 для сбора и генерации дневных отчётов. При необходимости вы можете изменить расписание или добавить сбор данных вручную.

Как sysstat собирает данные

Пакет включает сценарии sa1 и sa2. sa1 запускается каждые N минут и сохраняет снимки в бинарные логи; sa2 формирует дневной отчёт в человекочитаемом виде. Пример стандартного задания cron, которое вы, вероятно, увидите:

# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A

Логи сохраняются в /var/log/sa с именами saDD (бинарный) и sarDD (текстовый), где DD — номер дня месяца.

ls /var/log/sa

sa17  sar17

Работа с sar и ключевые отчёты

Запуск sar без аргументов покажет основные показатели CPU за сохранённые интервалы:

sar

Пример вывода:

11:00:02 AM       CPU     %user     %nice   %system   %iowait     %idle
11:10:01 AM       all      0.00      0.00      0.00      0.00     99.99
Average:          all      0.00      0.00      0.00      0.00     99.99

Ключевые столбцы и их однострочные определения:

  • %user — время, потраченное процессами пользователя (например, MySQL, Apache).
  • %nice — время, потраченное процессами с положительным nice (пониженный приоритет).
  • %system — время в коде ядра (системные вызовы, планировщик).
  • %iowait — время ожидания ввода/вывода (например, чтение/запись на диск).
  • %idle — простаивающее время CPU.

Отчёты для конкретных задач

  • Проверка swap:
sar -W

Поля pswpin/s и pswpout/s показывают обмен страницами в секунду — постоянный высокий обмен указывает на нехватку ОЗУ.

  • Нагрузка и очередь процессов:
sar -q

Поля runq-sz и ldavg-1/5/15 показывают длину очереди и среднюю нагрузку за 1/5/15 минут. Сравнивайте значения с числом доступных CPU: ldavg ≈ количеству CPU означает загрузку на грани.

  • Ввод/вывод и диски:
iostat -x 10 3

(Если установлен iostat из пакета sysstat) — покажет детальную статистику по устройствам.

Интерпретация и эвристики

  • %iowait

    • Кратковременные всплески — нормальны при бэкапах или пиковых задачах.
    • Устойчивое %iowait > ~5–10% требует проверки дисковой подсистемы и очередей I/O.
  • Swap

    • Единичные события подкачки — нормально. Постоянный pswpin/s > 0 указывает на недостаток ОЗУ.
  • Нагрузка (load average)

    • Сравнивайте с количеством логических CPU. Например, 4.0 на 4‑ядерной системе — высокая нагрузка; 4.0 на 8‑ядерной — ещё допустима.

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

Мини‑методология для ежедневного мониторинга

  1. Просмотреть последние дневные отчёты в /var/log/sa.
  2. Запустить sar -q, sar -W и iostat для quick check.
  3. Если %iowait или swap увеличены — посмотреть процессы (top/htop) и I/O по процессам (iotop или pidstat).
  4. Зафиксировать выводы, уведомить команду и при необходимости отложить план работ на ухудшение ситуации.

Чеклист для ролей

Администратор сервера:

  • Убедиться, что /etc/cron.d/sysstat настроен и выполняется.
  • Проверить наличие файлов /var/log/sa/saDD.
  • Настроить ротацию/архивацию логов при необходимости.

SRE/операции:

  • Интегрировать sysstat-отчёты в систему оповещений (при высоком iowait или swap).
  • Сравнить показатели с часовыми/суточными графиками.

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

  • Использовать данные sar для репликации нагрузки в тестовой среде.

Когда Sysstat не поможет и альтернативы

Когда не помогает:

  • Если нужна трассировка на уровне функций приложения — sysstat не даёт стеков и трассировок.
  • Для детального анализа сетевых пакетов потребуется tcpdump/wireshark.
  • Для долгоживущих метрик с метками по сервисам удобнее использовать метрические системы.

Альтернативы и дополнения:

  • Prometheus + node_exporter — метрики с хранением и дашбордами.
  • collectd — сбор метрик с плагинами.
  • atop — подробный исторический анализ процессов и I/O.
  • iostat, vmstat, mpstat — утилиты для доп. диагностики.

Сниппет и шпаргалка команд

Быстрые команды для проверки:

yum install sysstat
more /etc/cron.d/sysstat
ls -l /var/log/sa
sar            # общая статистика
sar -q         # очередь процессов и load average
sar -W         # статистика swap
iostat -x 1 3  # детальная статистика I/O
ps aux --sort=-%mem | head
top            # интерактивная проверка процессов

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

  • Наличие актуальных бинарных логов в /var/log/sa за последние 7 дней.
  • Отчёты sar доступны и формируются cron-скриптами.
  • Установлены простые оповещения при устойчивом повышении %iowait или при постоянной подкачке.

Важно: критерии зависят от SLA вашей инфраструктуры — адаптируйте пороги под свои требования.

Краткий словарь

  • sar — утилита для чтения и вывода системных отчётов.
  • sa1/sa2 — скрипты для сбора и генерации дневных отчётов.
  • %iowait — доля времени CPU в ожидании I/O.
  • pswpin/s, pswpout/s — скорость операций подкачки.

Резюме

  • Sysstat — простой и надёжный способ собирать исторические показатели производительности Linux.
  • Основные метрики для наблюдения: %iowait, swap и load average.
  • Комбинируйте sysstat с инструментами мониторинга и инструментами трассировки для глубокого анализа.

Короткое объявление для команды: можно подключить sysstat на всех серверах за одну команду установки и сразу начать собирать исторические данные — это даёт быстрый контекст для расследований производительности.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро