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

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‑ядерной — ещё допустима.
Примечание: пороги зависят от нагрузки приложений и архитектуры сервера; используйте исторические данные для определения базовой линии.
Мини‑методология для ежедневного мониторинга
- Просмотреть последние дневные отчёты в /var/log/sa.
- Запустить sar -q, sar -W и iostat для quick check.
- Если %iowait или swap увеличены — посмотреть процессы (top/htop) и I/O по процессам (iotop или pidstat).
- Зафиксировать выводы, уведомить команду и при необходимости отложить план работ на ухудшение ситуации.
Чеклист для ролей
Администратор сервера:
- Убедиться, что /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 на всех серверах за одну команду установки и сразу начать собирать исторические данные — это даёт быстрый контекст для расследований производительности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента