Освоение производительности: Практическое руководство по использованию набора инструментов Sysstat
Мониторинг производительности — это основа надежного администрирования систем Linux. Без надежных инструментов для отслеживания использования ресурсов выявление узких мест становится гаданием, что приводит к неэффективному устранению неполадок и реактивному масштабированию. Пакет утилит sysstat — это незаменимый, нативный набор инструментов Linux для сбора, анализа и составления отчетов о системной активности во всех критически важных областях ресурсов.
Это руководство предоставляет всесторонний обзор набора инструментов sysstat, уделяя основное внимание System Activity Reporter (sar). Мы рассмотрим установку, настройку для ведения исторического журнала и практические примеры команд для установления базовых показателей производительности и выявления конфликтов ресурсов в режиме реального времени и при последующем анализе использования ЦП, памяти, дискового ввода-вывода и сети.
1. Установка и первоначальная настройка Sysstat
Пакет sysstat обычно доступен в стандартных репозиториях всех основных дистрибутивов Linux.
1.1 Команды установки
Используйте соответствующую команду пакетного менеджера для вашей системы:
Debian/Ubuntu:
sudo apt update
sudo apt install sysstat
RHEL/CentOS/Fedora:
sudo yum install sysstat
# или используйте dnf для новых систем
sudo dnf install sysstat
1.2 Включение сбора исторических данных
Чтобы sar был действительно полезен, он должен собирать данные исторически. По умолчанию при установке часто настраивается задание cron или таймер systemd, но проверка имеет решающее значение.
В современных системах убедитесь, что служба sysstat активна:
sudo systemctl enable --now sysstat
Файл конфигурации
Частота сбора данных контролируется файлами конфигурации, обычно расположенными по адресу /etc/default/sysstat (Debian/Ubuntu) или /etc/sysconfig/sysstat (RHEL/CentOS). Ищите настройку ENABLED или HISTORY. Установка ENABLED="true" обеспечивает ежедневный сбор данных.
Совет: По умолчанию файлы данных
sysstatхранятся в/var/log/sa/с именами файлов, такими какsaXX(где XX — день месяца).
2. Основная утилита: System Activity Reporter (sar)
sar — это основной интерфейс для просмотра статистики. Он может отображать данные в реальном времени или анализировать ранее собранные исторические данные.
2.1 Базовый синтаксис для мониторинга в реальном времени
Базовый синтаксис предназначен для отчета о конкретных метриках с указанным интервалом для заданного количества.
sar [options] [interval] [count]
Пример: Отчет об общей статистике ЦП каждые 3 секунды, 10 раз:
sar -u 3 10
| Опция | Описание |
|---|---|
-u |
Загрузка ЦП (по умолчанию) |
-r |
Статистика памяти и страничной подкачки |
-d |
Активность блочных устройств (дисковый ввод-вывод) |
-n |
Сетевая статистика (например, -n DEV для статистики интерфейсов) |
-q |
Очередь выполнения и средняя загрузка |
-W |
Активность подкачки (страничная подкачка) |
-A |
Все метрики (полезно для комплексных снимков) |
3. Ключевые метрики производительности и практические примеры sar
Понимание вывода sar требует знания того, какие метрики указывают на состояние производительности или нагрузку.
3.1 Загрузка ЦП (sar -u)
Загрузка ЦП часто является первым местом, куда следует смотреть при поиске узких мест. Высокая загрузка по конкретным категориям указывает на характер рабочей нагрузки.
sar -u 5 3
| Метрика | Описание | Индикатор узкого места |
|---|---|---|
%user |
Время ЦП, затраченное на выполнение пользовательских процессов. | Высокое значение указывает на насыщение приложения/сервиса. |
%system |
Время ЦП, затраченное на выполнение системных задач ядра. | Высокое значение предполагает интенсивные системные вызовы или проблемы с драйверами. |
%iowait |
Время ЦП, простаивающее в ожидании операций ввода-вывода (диск/сеть). | Высокое значение указывает на узкое место ввода-вывода, а не на нехватку ЦП. |
%idle |
Время ЦП, затраченное на ожидание (свободно). | Низкое значение (например, < 5%) предполагает насыщение ЦП. |
3.2 Память и страничная подкачка (sar -r и sar -W)
Статистика памяти показывает как использование, так и то, прибегает ли система к подкачке или страничной подкачке.
Использование памяти (sar -r):
sar -r 1 5
Сосредоточьтесь на kbavail (доступная память). Если kbmemfree низкое, но kbcached и kbbuffers высокие, память эффективно используется механизмом кэширования ядра.
Активность подкачки (sar -W):
sar -W 1 5
Обратите внимание на pswpin/s (страницы, загруженные в подкачку) и pswpout/s (страницы, выгруженные из подкачки). Любые значительные ненулевые значения здесь указывают на то, что система активно подкачивает страницы, сигнализируя о нехватке памяти (сильное узкое место).
3.3 Активность дискового ввода-вывода (sar -d)
Мониторинг активности диска имеет решающее значение для серверов баз данных или систем с интенсивным использованием хранилищ.
sar -d 3 5
Этот вывод требует идентификации конкретных устройств (например, sda, vda). Основные метрики включают:
tps: Транзакций в секунду (высокое значение указывает на большое количество запросов ввода-вывода).rd_sec/sиwr_sec/s: Объем данных, прочитанных/записанных в секунду.%util: Процент времени, в течение которого устройство было занято обслуживанием запросов. Если%utilприближается к 100%, система хранения насыщена.
3.4 Сетевая статистика (sar -n)
sar может отчитываться об активности на различных сетевых уровнях. Наиболее распространенная проверка — активность интерфейса (DEV).
sar -n DEV 5 1
Эта команда показывает метрики, такие как rxpk/s (полученные пакеты в секунду) и txkB/s (переданные килобайты в секунду) для каждого сетевого интерфейса. Используйте это для идентификации интерфейсов, испытывающих высокую нагрузку или потенциальные ошибки.
4. Исторический анализ и создание базовых показателей
Истинная мощь sysstat заключается в его способности анализировать системную активность в течение длительных периодов, что необходимо для установления базовых показателей производительности (что является нормальным для вашей системы).
4.1 Анализ предыдущих дней
Чтобы просмотреть данные, собранные в предыдущий день, используйте флаг -f для указания пути к ежедневному файлу saXX.
Пример: Просмотр статистики ЦП за 10-й день текущего месяца:
sar -u -f /var/log/sa/sa10
Чтобы просмотреть статистику за определенный временной интервал в этот день, добавьте флаги -s (время начала) и -e (время окончания) (используя 24-часовой формат).
# Просмотр сетевой статистики с 14:00 до 16:30 за 10-е число
sar -n DEV -f /var/log/sa/sa10 -s 14:00:00 -e 16:30:00
4.2 Установление базовых показателей
- Сбор данных: Запустите
sysstatв течение 1-2 недель в периоды обычной высокой и низкой нагрузки. - Определение норм: Проанализируйте исторические данные (
sar -f), чтобы определить среднюю загрузку ЦП (%user,%system), пиковую задержку ввода-вывода (%util) и среднее использование памяти. - Определение пороговых значений: Любое устойчивое отклонение (например, удвоение
%iowaitили падение%idleниже 5% более чем на 10 минут) относительно вашего базового уровня указывает на проблему производительности, требующую расследования.
5. Вспомогательные инструменты Sysstat
Хотя sar является основным инструментом, пакет sysstat включает специализированные утилиты, которые предоставляют сфокусированные, детализированные отчеты.
5.1 iostat (Статистика ввода-вывода)
iostat предоставляет подробные метрики, ориентированные специально на использование устройств, что особенно полезно при диагностике узких мест в хранилище.
# Отчет по статистике дисков каждые 2 секунды, 4 раза, включая расширенную статистику (x)
iostat -xd 2 4
Ключевые метрики iostat:
%util: Процент времени ЦП, в течение которого устройству были выданы запросы на ввод-вывод (ключевой показатель насыщения).await: Среднее время ожидания (в миллисекундах) для запросов на ввод-вывод, выданных устройству. Высокое значениеawaitуказывает на медленную реакцию хранилища.
5.2 mpstat (Статистика многопроцессорности)
Если вы подозреваете проблемы с планированием ЦП или неравномерное распределение рабочей нагрузки по ядрам, mpstat предоставляет статистику использования для каждого процессора, что sar -u агрегирует.
# Показ использования всех ЦП (A) каждые 2 секунды
mpstat -P ALL 2 1
Это бесценно для выявления однопоточных приложений, которые насыщают одно ядро, в то время как другие остаются неактивными, или для диагностики эффективности гиперпоточности.
Заключение
Набор инструментов sysstat является фундаментальным элементом оптимизации производительности и мониторинга систем Linux. Освоив утилиту sar, системные администраторы получают возможность выйти за рамки простого мгновенного мониторинга и проводить глубокий исторический анализ потребления ресурсов. Регулярное использование sar для мониторинга использования ЦП, памяти, ввода-вывода и сети, в сочетании с установлением надежных базовых показателей производительности, превращает реактивное устранение неполадок в проактивное управление системой, обеспечивая оптимальное использование ресурсов и стабильность системы.